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

In Unix-like and some other operating systems, the pwd command (print working directory)[1][2][3] writes the full pathname of the current working directory to the standard output.[4][5][6][7][8][9][10]


Multics had a pwd command (which was a short name of the print_wdir command)[11] from which the Unix pwd command originated.[12] The command is a shell builtin in most Unix shells such as Bourne shell, ash, bash, ksh, and zsh. It can be implemented easily with the POSIX C functions getcwd() or getwd().

It is also available in the operating systems SpartaDOS X,[13] PANOS,[14] and KolibriOS.[15] The equivalent on DOS (COMMAND.COM) and Microsoft Windows (cmd.exe) is the cd command with no arguments. Windows PowerShell provides the equivalent Get-Location cmdlet with the standard aliases gl and pwd. On Windows CE 5.0, the cmd.exe Command Processor Shell includes the pwd command.[16]

pwd as found on Unix systems 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.[17] It appeared in Version 5 Unix.[18] The version of pwd bundled in GNU coreutils was written by Jim Meyering.[19]

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

*nix examples

Command Explanation
pwd Display the current working directory. Example: /home/foobar
pwd -P Display the current working directory physical path - without symbolic link name, if any. Example: If standing in a dir /home/symlinked, that is a symlink to /home/realdir, this would show /home/realdir
pwd -L Display the current working directory logical path - with symbolic link name, if any. Example: If standing in a dir /home/symlinked, that is a symlink to /home/realdir, this would show /home/symlinked

Note: POSIX requires that the default behavior be as if the -L switch were provided.

Working directory shell variables

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

The previous working directory (as set by the cd command).
The current working directory (as set by the cd command).

See also


  1. ^ "pwd(1) [minix man page]".
  2. ^ "pwd - print name of current/working directory - man page".
  3. ^ "GNU Coreutils".
  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]".
  6. ^ "pwd".
  7. ^ "pwd(1) [osf1 man page]".
  8. ^ "Apple OS X MAN page".
  9. ^ "pwd(1) - OpenBSD manual pages".
  10. ^ "pwd(1) [opensolaris man page]".
  11. ^ "working_dir, wd, print_wdir, pwd (Multics help segment)". MIT. Retrieved 7 March 2020.
  12. ^ Van Vleck, Tom. "Unix and Multics". Retrieved 7 March 2020.
  13. ^ "SpartaDOS X 4.48 User Guide" (PDF).
  14. ^ "Chris's Acorns: Panos".
  15. ^ "Shell - KolibriOS wiki".
  16. ^ "Command Processor Commands (Windows CE 5.0)".
  17. ^ wc – Shell and Utilities Reference, The Single UNIX Specification, Version 4 from The Open Group
  18. ^ pwd(1) – FreeBSD General Commands Manual
  19. ^ pwd(1) – Linux User Manual – User Commands
  20. ^ "Identify current folder - MATLAB pwd".
  21. ^ "Function Reference: pwd".
  22. ^ "cd".

Further reading