# pwd

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           pwd — return working directory name
    


## SYNOPSIS



           pwd **[** -L|-P**]**
    


## DESCRIPTION



           The _pwd_ utility shall write to standard output an absolute
           pathname of the current working directory, which does not contain
           the filenames dot or dot-dot.
    


## OPTIONS



           The _pwd_ utility shall conform to the Base Definitions volume of
           POSIX.1‐2017, _Section 12.2_ , _Utility Syntax Guidelines_.
    
           The following options shall be supported by the implementation:
    
           **-L** If the _PWD_ environment variable contains an absolute
                     pathname of the current directory and the pathname does
                     not contain any components that are dot or dot-dot, _pwd_
                     shall write this pathname to standard output, except
                     that if the _PWD_ environment variable is longer than
                     {PATH_MAX} bytes including the terminating null, it is
                     unspecified whether _pwd_ writes this pathname to standard
                     output or behaves as if the **-P** option had been
                     specified. Otherwise, the **-L** option shall behave as the
                     **-P** option.
    
           **-P** The pathname written to standard output shall not
                     contain any components that refer to files of type
                     symbolic link. If there are multiple pathnames that the
                     _pwd_ utility could write to standard output, one
                     beginning with a single <slash> character and one or
                     more beginning with two <slash> characters, then it
                     shall write the pathname beginning with a single <slash>
                     character. The pathname shall not contain any
                     unnecessary <slash> characters after the leading one or
                     two <slash> characters.
    
           If both **-L** and **-P** are specified, the last one shall apply. If
           neither **-L** nor **-P** is specified, the _pwd_ utility shall behave as if
           **-L** had been specified.
    


## OPERANDS



           None.
    


## STDIN



           Not used.
    


## INPUT FILES



           None.
    


## ENVIRONMENT VARIABLES



           The following environment variables shall affect the execution of
           _pwd_ :
    
           _LANG_      Provide a default value for the internationalization
                     variables that are unset or null. (See the Base
                     Definitions volume of POSIX.1‐2017, _Section 8.2_ ,
                     _Internationalization Variables_ the precedence of
                     internationalization variables used to determine the
                     values of locale categories.)
    
           _LC_ALL_    If set to a non-empty string value, override the values
                     of all the other internationalization variables.
    
           _LC_MESSAGES_
                     Determine the locale that should be used to affect the
                     format and contents of diagnostic messages written to
                     standard error.
    
           _NLSPATH_   Determine the location of message catalogs for the
                     processing of _LC_MESSAGES_.
    
           _PWD_       An absolute pathname of the current working directory.
                     If an application sets or unsets the value of _PWD_ , the
                     behavior of _pwd_ is unspecified.
    


## ASYNCHRONOUS EVENTS



           Default.
    


## STDOUT



           The _pwd_ utility output is an absolute pathname of the current
           working directory:
    
               "%s\n", <_directory pathname_ >
    


## STDERR



           The standard error shall be used only for diagnostic messages.
    


## OUTPUT FILES



           None.
    


## EXTENDED DESCRIPTION



           None.
    


## EXIT STATUS



           The following exit values shall be returned:
    
            0    Successful completion.
    
           >0    An error occurred.
    


## CONSEQUENCES OF ERRORS



           If an error is detected, output shall not be written to standard
           output, a diagnostic message shall be written to standard error,
           and the exit status is not zero.
    
           _The following sections are informative._
    


## APPLICATION USAGE



           If the pathname obtained from _pwd_ is longer than {PATH_MAX} bytes,
           it could produce an error if passed to _cd_.  Therefore, in order to
           return to that directory it may be necessary to break the pathname
           into sections shorter than {PATH_MAX} and call _cd_ on each section
           in turn (the first section being an absolute pathname and
           subsequent sections being relative pathnames).
    


## EXAMPLES



           None.
    


## RATIONALE



           Some implementations have historically provided _pwd_ as a shell
           special built-in command.
    
           In most utilities, if an error occurs, partial output may be
           written to standard output. This does not happen in historical
           implementations of _pwd_.  Because _pwd_ is frequently used in
           historical shell scripts without checking the exit status, it is
           important that the historical behavior is required here;
           therefore, the CONSEQUENCES OF ERRORS section specifically
           disallows any partial output being written to standard output.
    
           An earlier version of this standard stated that the _PWD_
           environment variable was affected when the **-P** option was in
           effect. This was incorrect; conforming implementations do not do
           this.
    


## FUTURE DIRECTIONS



           None.
    


* * *