Basename: Difference between revisions
mNo edit summary |
m →Usage: Copyedit, fixing duplicated words: specification |
||
(25 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Unix string manipulation utility}} |
|||
{{lowercase}} |
{{lowercase}} |
||
{{Infobox |
{{Infobox software |
||
| name = basename |
| name = basename |
||
| logo = |
| logo = |
||
Line 10: | Line 11: | ||
| latest release version = |
| latest release version = |
||
| latest release date = |
| latest release date = |
||
| programming language = [[C (programming language)|C]] |
|||
| operating system = [[Unix]] and [[Unix-like]] |
|||
| operating system = [[Unix]], [[Unix-like]], [[Plan 9 from Bell Labs|Plan 9]], [[Inferno (operating system)|Inferno]] |
|||
| platform = [[Cross-platform]] |
|||
| genre = [[Command (computing)|Command]] |
| genre = [[Command (computing)|Command]] |
||
| license = [[ |
| license = [[coreutils]]: [[GPLv3+]]<br />Plan 9: [[MIT License]] |
||
| website = |
| website = |
||
}} |
}} |
||
'''< |
'''<kbd>basename</kbd>''' is a standard [[computer program]] on [[Unix]] and [[Unix-like]] [[operating system]]s. When <kbd>basename</kbd> is given a [[pathname]], it will delete any prefix up to the last slash (<code>'/'</code>) character and return the result. <kbd>basename</kbd> is described in the [[Single UNIX Specification]] and is primarily used in [[shell script]]s. |
||
==History== |
==History== |
||
{{code|basename}} was introduced in [[X/Open]] Portability Guidelines issue 2 of 1987. It was inherited into the first version of POSIX and the [[Single Unix Specification]].<ref>{{man|cu|basename|SUS}}</ref> It first appeared in 4.4BSD.<ref>{{man|1|basename|FreeBSD}}</ref> |
|||
⚫ | |||
⚫ | |||
The command is available as a separate package for [[Microsoft Windows]] as part of the [[GnuWin32]] project<ref>[http://gnuwin32.sourceforge.net/packages/coreutils.htm CoreUtils for Windows]</ref> and the [[UnxUtils]] collection of [[Native (computing)|native]] [[Windows API|Win32]] [[porting|ports]] of common [[GNU]] Unix-like utilities.<ref>[http://unxutils.sourceforge.net/ Native Win32 ports of some GNU utilities]</ref> |
|||
==Usage== |
==Usage== |
||
The [[Single UNIX Specification]] |
The [[Single UNIX Specification]] for <kbd>basename</kbd> is. |
||
basename string [suffix] |
basename string [suffix] |
||
:< |
:<kbd>string</kbd> |
||
::A [[pathname]] |
::A [[pathname]] |
||
:< |
:<kbd>suffix</kbd> |
||
::If specified, < |
::If specified, <kbd>basename</kbd> will also delete the suffix. |
||
==Examples== |
==Examples== |
||
basename will retrieve the last name from a pathname ignoring any trailing slashes |
basename will retrieve the last name from a pathname ignoring any trailing slashes |
||
< |
<syntaxhighlight lang="console"> |
||
$ basename /home/jsmith/base.wiki |
$ basename /home/jsmith/base.wiki |
||
base.wiki |
base.wiki |
||
Line 40: | Line 47: | ||
$ basename / |
$ basename / |
||
/ |
/ |
||
</syntaxhighlight> |
|||
</source> |
|||
basename can also be used to remove the end of the base name, but not the complete base name |
basename can also be used to remove the end of the base name, but not the complete base name |
||
< |
<syntaxhighlight lang="console"> |
||
$ basename /home/jsmith/base.wiki .wiki |
$ basename /home/jsmith/base.wiki .wiki |
||
base |
base |
||
Line 51: | Line 58: | ||
$ basename /home/jsmith/base.wiki base.wiki |
$ basename /home/jsmith/base.wiki base.wiki |
||
base.wiki |
base.wiki |
||
</syntaxhighlight> |
|||
</source> |
|||
==See also== |
==See also== |
||
* [[List of Unix commands]] |
* [[List of Unix commands]] |
||
* |
* [[dirname]] |
||
* [[Path (computing) |
* [[Path (computing)]] |
||
==References== |
==References== |
||
Line 62: | Line 69: | ||
==External links== |
==External links== |
||
{{Wikibooks|Guide to Unix|Commands}} |
|||
*{{man|cu|basename|SUS|return non-directory portion of a pathname}} |
*{{man|cu|basename|SUS|return non-directory portion of a pathname}} |
||
*{{man|1|basename|Plan 9}} |
|||
*{{man|1|basename|Inferno}} |
|||
*{{man|1|basename|die.net}} |
*{{man|1|basename|die.net}} |
||
*{{man|1|basename|OpenBSD}} |
*{{man|1|basename|OpenBSD}} |
||
{{Unix commands}} |
{{Unix commands}} |
||
{{Plan 9 commands}} |
|||
{{Core Utilities commands}} |
|||
[[Category:Standard Unix programs|Basename]] |
[[Category:Standard Unix programs|Basename]] |
||
[[Category:Unix SUS2008 utilities]] |
[[Category:Unix SUS2008 utilities]] |
||
[[Category:Plan 9 commands]] |
|||
[[Category:Inferno (operating system) commands]] |
|||
[[Category:IBM i Qshell commands]] |
Latest revision as of 16:29, 3 September 2024
Initial release | January 1979 |
---|---|
Written in | C |
Operating system | Unix, Unix-like, Plan 9, Inferno |
Platform | Cross-platform |
Type | Command |
License | coreutils: GPLv3+ Plan 9: MIT License |
basename is a standard computer program on Unix and Unix-like operating systems. When basename is given a pathname, it will delete any prefix up to the last slash ('/'
) character and return the result. basename is described in the Single UNIX Specification and is primarily used in shell scripts.
History
[edit]basename
was introduced in X/Open Portability Guidelines issue 2 of 1987. It was inherited into the first version of POSIX and the Single Unix Specification.[1] It first appeared in 4.4BSD.[2]
The version of basename
bundled in GNU coreutils was written by David MacKenzie.[3]
The command is available as a separate package for Microsoft Windows as part of the GnuWin32 project[4] and the UnxUtils collection of native Win32 ports of common GNU Unix-like utilities.[5]
Usage
[edit]The Single UNIX Specification for basename is.
basename string [suffix]
- string
- A pathname
- suffix
- If specified, basename will also delete the suffix.
Examples
[edit]basename will retrieve the last name from a pathname ignoring any trailing slashes
$ basename /home/jsmith/base.wiki
base.wiki
$ basename /home/jsmith/
jsmith
$ basename /
/
basename can also be used to remove the end of the base name, but not the complete base name
$ basename /home/jsmith/base.wiki .wiki
base
$ basename /home/jsmith/base.wiki ki
base.wi
$ basename /home/jsmith/base.wiki base.wiki
base.wiki
See also
[edit]References
[edit]- ^ The Single UNIX Specification, Version 4 from The Open Group – Shell and Utilities Reference,
- ^ FreeBSD General Commands Manual –
- ^ Linux User Manual – User Commands –
- ^ CoreUtils for Windows
- ^ Native Win32 ports of some GNU utilities
External links
[edit]- The Single UNIX Specification, Version 4 from The Open Group : return non-directory portion of a pathname – Shell and Utilities Reference,
- Plan 9 Programmer's Manual, Volume 1 –
- Inferno General commands Manual –
- Linux User Commands Manual –
- OpenBSD General Commands Manual –