Jump to content

Basename: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
m Usage: Copyedit, fixing duplicated words: specification
 
(23 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{Short description|Unix string manipulation utility}}
{{lowercase}}
{{lowercase}}
{{Infobox Software
{{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 = [[GNU General Public License#Version 3|GNU GPL v3]]
| license = [[coreutils]]: [[GPLv3+]]<br />Plan 9: [[MIT License]]
| website =
| website =
}}
}}
Line 18: Line 21:


==History==
==History==
{{code|basename}} was introduced in [[X/Open]] Portability Guidelines issue 2 of 1987.
{{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 version of <code>basename</code> bundled in [[GNU]] [[coreutils]] was written by David MacKenzie.<ref>https://linux.die.net/man/1/basename</ref>
The version of <code>basename</code> bundled in [[GNU]] [[coreutils]] was written by David MacKenzie.<ref>{{man|1|basename|Linux}}</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]] specification for <kbd>basename</kbd> is.
The [[Single UNIX Specification]] for <kbd>basename</kbd> is.
basename string [suffix]
basename string [suffix]


Line 33: Line 38:
==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
<source lang="console">
<syntaxhighlight lang="console">
$ basename /home/jsmith/base.wiki
$ basename /home/jsmith/base.wiki
base.wiki
base.wiki
Line 42: 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
<source lang="console">
<syntaxhighlight lang="console">
$ basename /home/jsmith/base.wiki .wiki
$ basename /home/jsmith/base.wiki .wiki
base
base
Line 53: 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]]
* <code>[[dirname]]</code>
* [[dirname]]
* [[Path (computing)|Path]]
* [[Path (computing)]]


==References==
==References==
Line 64: 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

basename
Initial releaseJanuary 1979; 46 years ago (1979-01)
Written inC
Operating systemUnix, Unix-like, Plan 9, Inferno
PlatformCross-platform
TypeCommand
Licensecoreutils: 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]
  1. ^ basename – Shell and Utilities Reference, The Single UNIX Specification, Version 4 from The Open Group
  2. ^ basename(1) – FreeBSD General Commands Manual
  3. ^ basename(1) – Linux User Manual – User Commands
  4. ^ CoreUtils for Windows
  5. ^ Native Win32 ports of some GNU utilities
[edit]