PWD(1)

NAME
pwd - return working directory name

SYNOPSIS
pwd [-L | -P]

DESCRIPTION
The pwd utility writes the absolute pathname of the current working directory to the standard output.

Some shells may provide a builtin pwd command which is similar or identical to this utility. Consult the builtin(1) manual page.

The options are as follows:

-L  Display the logical current working directory. If the PWD environment variable is set to an absolute path with no ‘’. or ‘..’ components, and stat(2) confirms it refers to the same inode as ‘’., then PWD is printed as-is. Otherwise the physical path is used as a fallback.

-P  Display the physical current working directory (all symbolic links resolved). The path is obtained via getcwd(3).

If no options are specified, the -L option is assumed.

ENVIRONMENT
Environment variables used by pwd:

PWD Logical current working directory. Used only when -L is in effect (the default).

EXIT STATUS

A non-zero exit status is returned when getcwd(3) fails (e.g. the current directory has been deleted or permissions deny traversal) or when writing to standard output fails.

EXAMPLES
Show current working directory with symbolic links resolved:

    $ /bin/pwd -P
    /usr/src/sys/kern

Show the logical current directory when inside a symlink:

    $ mkdir -p real/sub
    $ ln -s real link
    $ cd link/sub
    $ /bin/pwd -L
    /home/user/link/sub
    $ /bin/pwd -P
    /home/user/real/sub

SEE ALSO
cd(1), realpath(1), sh(1), stat(2), getcwd(3)

STANDARDS
The pwd utility conforms to p1003.1-2001.

HISTORY
The pwd command appeared in AT&T UNIX.

BUGS
In interactive shells the builtin pwd command is always faster and maintains a logical path stack. However, it can give a different answer in the rare case that the current directory or a containing directory was moved after the shell descended into it.

The -L option does not work unless the PWD environment variable is exported by the shell.