Jump to content

Basename

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 121.209.160.6 (talk) at 00:37, 19 February 2014 (Added useful link to Path_(computing)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

basename is a standard UNIX computer program. 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.

Usage

The Single UNIX Specification specification for basename is.

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

Example

$ basename /home/jsmith/base.wiki 
base.wiki
$ basename /home/jsmith/base.wiki .wiki
base

Performance

Since basename accepts only one operand, its usage within the inner loop of shell scripts can be detrimental to performance. Consider

while read file; do
  basename "$file" ;
done < some-input

The above excerpt would cause a separate process invocation for each line of input. For this reason, shell substitution is typically used instead

echo "${file##*/}";

See also