basename, dirname - Returns the base file name or directory
portion of a path name
basename string [suffix]
dirname string
Interfaces documented on this reference page conform to
industry standards as follows:
basename: XCU5.0
dirname: XCU5.0
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
None
A string to be evaluated. This string may be empty. A
file name suffix to be deleted if found. This operand
applies to the basename command only, and is optional.
The basename command reads the string specified on the
command line, deletes the portion from the beginning to
the last / (slash), and writes the base file name to standard
output. If suffix is specified on the command line
and suffix appears in string, the string is returned with
the suffix removed.
The dirname command reads the string specified on the command
line, deletes from the last / (slash) to the end of
the line, and writes the remaining path name to standard
output.
[Tru64 UNIX] The basename and dirname commands are generally
used inside command substitutions within a shell procedure
to specify an output file name that is some variation
of a specified input file name. For more information,
see the csh(1), ksh(1), and sh(1b) or sh(1p) reference
pages.
The following table demonstrates the processing applied to
characters with particular meanings by the basename and
dirname commands.
------------------------------
basename dirname
string Result Result
------------------------------
/ / /
// / /
/a/b b /a
//a//b// b //a
<null> err msg err msg
a a .
"" .
/a a /
/a/b b /a
a/b b a
------------------------------
It is not an error if suffix is not a part of string.
To display the base file name of a shell variable, enter:
basename $WORKFILE
This displays the base file name of the value
assigned to the WORKFILE shell variable. If WORKFILE
is set to /u/gabe/program.c, then program.c is
displayed. To construct, in a shell script, a file
name that is the same as another file name, except
for its suffix, enter the following command, using
grave accents: OFILE=`basename $1 .c`.o
This assigns to OFILE the value of the first positional
parameter ($1), but with its suffix changed
to $1 is /u/jim/program.c, then OFILE becomes program.o.
Because program.o is only a base file
name, it identifies a file in the current directory.
The grave accents perform command substitution. To
construct the name of a file located in the same
directory as another, enter the following command,
using grave accents: AOUTFILE=`dirname
$TEXTFILE`/a.out
This sets the AOUTFILE shell variable to the name
of an a.out file that is in the same directory as
TEXTFILE. If TEXTFILE is /u/fran/prog.c, then the
value of dirname $TEXTFILE is /u/fran and AOUTFILE
becomes /u/fran/a.out.
ENVIRONMENT VARIABLES [Toc] [Back] The following environment variables affect the execution
of basename and dirname: Provides a default value for the
internationalization variables that are unset or null. If
LANG is unset or null, the corresponding value from the
default locale is used. If any of the internationalization
variables contain an invalid setting, the utility
behaves as if none of the variables had been defined. If
set to a non-empty string value, overrides the values of
all the other internationalization variables. Determines
the locale for the interpretation of sequences of bytes of
text data as characters (for example, single-byte as
opposed to multibyte characters in arguments). Determines
the locale for the format and contents of diagnostic messages
written to standard error. Determines the location
of message catalogues for the processing of LC_MESSAGES.
Commands: csh(1), ksh(1), Bourne shell sh(1b), POSIX
shell sh(1p)
Standards: standards(5)
basename(1)
[ Back ] |