Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > B


HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


basename, dirname — extract portions of path names


basename string [suffix]

dirname [string]


basename deletes any prefix ending in / and the suffix (if present in string) from string, and prints the result on the standard output. If string consists entirely of slash characters, string is set to a single slash character. If there are any trailing slash characters in string, they are removed. If the suffix operand is present but not identical to the characters remaining in string, but it is identical to a suffix of the characters remaining in string, the suffix is removed from string. basename is normally used inside command substitution marks (`...`) within shell procedures.

dirname delivers all but the last level of the path name in string. If string does not contain a directory component, dirname returns ., indicating the current working directory.


Environment Variables

LC_CTYPE determines the interpretation of string and, in the case of basename, suffix as single and/or multi-byte characters.

If LC_CTYPE is not specified in the environment or is set to the empty string, the value of LANG is used as a default for each unspecified or empty variable. If LANG is not specified or is set to the empty string, a default of "C" (see lang(5)) is used instead of LANG. If any internationalization variable contains an invalid setting, basename and dirname behave as if all internationalization variables are set to "C". See environ(5).

International Code Set Support

Single- and multi-byte character code sets are supported.


The following shell script, invoked with the argument /usr/src/cmd/cat.c, compiles the named file and moves the output to a file named cat in the current directory:

cc $1 mv a.out `basename $1 .c`

The following example sets the shell variable NAME to /usr/src/cmd:

NAME=`dirname /usr/src/cmd/cat.c`


basename and dirname return one of the following values:


Successful completion.


Incorrect number of command-line arguments.


expr(1), sh(1).


basename: SVID2, SVID3, XPG2, XPG3, XPG4, POSIX.2

dirname: SVID2, SVID3, XPG2, XPG3, XPG4, POSIX.2

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.