Jump to content

Basename: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
mNo edit summary
m Usage: Copyedit, fixing duplicated words: specification
 
(17 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{Short description|Unix string manipulation utility}}
{{lowercase}}
{{lowercase}}
{{Infobox software
{{Infobox software
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]], [[Unix-like]], [[Plan 9 from Bell Labs|Plan 9]], [[Inferno (operating system)|Inferno]]
| 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 = [[coreutils]]: [[GPLv3+]]
| 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>{{man|1|basename|die.net}}</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>
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 69: Line 72:
*{{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|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]