basename(1)basename(1)Namebasename - strip directory names from pathname
Syntaxbasename string [ suffix ]
Description
The 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 command handles limited regular expressions in
the same manner as 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, returns because it interprets the as a regular
expression consisting of any character followed by the letter In the
second example, the dot is escaped; there is no match on a dot followed
by and returns
The command is often used inside substitution marks (` `) within shell
procedures.
Examples
The following example shell script compiles the file and moves the out‐
put to 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 by removing
the prefix and any possible sequence of characters following the period
in the file's name:
% basename /etc/syslog.conf '\..*'
syslog
See Alsodirname(1), ex(1), sh(1)basename(1)