basename(1)
Name
basename − strip directory names from pathname
Syntax
basename string [ suffix ]
Description
The basename command deletes from string any prefix up to and including the last slash (/) and the suffix (if specified), and prints the result on the standard output. The basename command handles limited regular expressions in the same manner as ed(;); metacharacters must be escaped if they are intended to be interpreted literally. For example:
% basename /vmunix .x
vmun
% basename /vmunix ’\.x’
vmunix
In the first example, basename returns vmun because it interprets the .x as a regular expression consisting of any character followed by the letter x. In the second example, the dot is escaped; there is no match on a dot followed by x, and basename returns vmunix.
The basename command is often used inside substitution marks (` `) within shell procedures.
Examples
The following example shell script compiles the file /usr/src/bin/cat.c and moves the output to cat in the current directory:
cc /usr/src/bin/cat.c
mv a.out `basename $1 .c`
The following example echoes only the base name of the file /etc/syslog.conf by removing the prefix and any possible sequence of characters following the period in the file’s name:
% basename /etc/syslog.conf ’\..*’
syslog