pwd

pwd
Original author(s)AT&T Bell Laboratories
Developer(s)Various open-source and commercial developers
Initial releaseJune 1974 (1974-06)
Written inC
Operating systemMultics, Unix, Unix-like, V, Plan 9, Inferno, SpartaDOS X, PANOS, Windows CE, KolibriOS
PlatformCross-platform
TypeCommand
Licensecoreutils: GPLv3+
Plan 9: MIT License

pwd (print working directory)[1][2][3] is a shell command that reports the working directory path to standard output.[4][5][6][7][8][9][10]

Although often associated with Unix, its predecessor Multics had a pwd command (which was a short name of the print_wdir command[11]) from which the Unix command originated.[12] The command is part of the X/Open Portability Guide since issue 2 of 1987. It was inherited into the first version of POSIX.1 and the Single Unix Specification.[13] It appeared in Version 5 Unix.[14] The version bundled in GNU Core Utilities was written by Jim Meyering.[15]

The command is available in other shells and operating systems including SpartaDOS X,[16] PANOS,[17] and KolibriOS.[18] PowerShell provides pwd as an alias for the cmdlet Get-Location. An equivalent command in COMMAND.COM and Command Prompt is the cd command with no arguments. On Windows CE 5.0, cmd.exe includes a pwd command.[19] The OpenVMS equivalent is show default.

The numerical computing environments MATLAB and GNU Octave include a pwd function with similar functionality.[20][21]

The command is implemented as a shell builtin in many Unix shells including sh, ash, bash, ksh, and zsh. It can be implemented with the POSIX getcwd() or getwd() functions.

Examples

The following examples are based on a typical Unix-based implementation.

With no arguments, the command writes the working directory path to the terminal:

$ cd /home/example
$ pwd
/home/example

Display the working directory without any symbolic link info. If at a directory /home/symlinked that is a symlink to /home/realdir:

$ cd /home/symlinked
$ pwd -P
/home/realdir

Display the working directory with symbolic link info. Note: POSIX requires that the default behavior be as if the -L switch were provided.

$ pwd -L
/home/symlinked

Shell variables

POSIX shells set the following environment variables while using the cd command:[22]

OLDPWD
The previous working directory
PWD
The current working directory

See also

References

  1. ^ "pwd(1) [minix man page]". www.unix.com.
  2. ^ "pwd - print name of current/working directory - man page". www.mankier.com.
  3. ^ "GNU Coreutils". www.gnu.org.
  4. ^ Unix Time-Sharing System: Unix Programmer's Manual (PDF). Vol. 1 (7th ed.). Bell labs. January 1979. p. 142. Archived from the original (PDF) on 2005-05-20.
  5. ^ "pwd(1) [plan9 man page]". www.unix.com.
  6. ^ "pwd". pubs.opengroup.org.
  7. ^ "pwd(1) [osf1 man page]". www.unix.com.
  8. ^ "Apple OS X MAN page".
  9. ^ "pwd(1) - OpenBSD manual pages". man.openbsd.org.
  10. ^ "pwd(1) [opensolaris man page]". www.unix.com.
  11. ^ "working_dir, wd, print_wdir, pwd (Multics help segment)". MIT. Retrieved 7 March 2020.
  12. ^ Van Vleck, Tom. "Unix and Multics". Multicians.org. Retrieved 7 March 2020.
  13. ^ wc – Shell and Utilities Reference, The Single UNIX Specification, Version 5 from The Open Group
  14. ^ pwd(1) – FreeBSD General Commands Manual
  15. ^ pwd(1) – Linux User Manual – User Commands
  16. ^ "SpartaDOS X 4.48 User Guide" (PDF).
  17. ^ "Chris's Acorns: Panos". chrisacorns.computinghistory.org.uk.
  18. ^ "Shell - KolibriOS wiki". wiki.kolibrios.org.
  19. ^ "Command Processor Commands (Windows CE 5.0)". docs.microsoft.com.
  20. ^ "Identify current folder - MATLAB pwd". www.mathworks.com.
  21. ^ "Function Reference: pwd". octave.sourceforge.io.
  22. ^ "cd". pubs.opengroup.org.

Further reading

  • McElhearn, Kirk (2006). The Mac OS X Command Line: Unix Under the Hood. John Wiley & Sons. ISBN 978-0470113851.