basename

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.

basename
Initial releaseJanuary 1979 (1979-01)
Operating systemUnix, Unix-like, Plan 9, Inferno
PlatformCross-platform
TypeCommand
Licensecoreutils: GPLv3+

History

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

The Single UNIX Specification specification for basename is.

basename string [suffix]
string
A pathname
suffix
If specified, basename will also delete the suffix.

Examples

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

References

  1. basename  Commands & Utilities Reference, The Single UNIX Specification, Issue 7 from The Open Group
  2. basename(1)  FreeBSD General Commands Manual
  3. basename(1)  Linux User Commands Manual
  4. CoreUtils for Windows
  5. Native Win32 ports of some GNU utilities
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.