Basename

Last updated
basename
Initial releaseJanuary 1979;46 years ago (1979-01)
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 and including the last non-trailing slash ('/') character, returning the result. basename is described in the Single UNIX Specification and is primarily used in shell scripts.

Contents

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 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.wikibase.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.wikiki base.wi$ basename/home/jsmith/base.wikibase.wiki base.wiki

See also

References

  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