Jump to content

Pwd: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Rollback edit(s) by 97.77.188.52 (talk) to rev. 961744350 by RedRiver660: Unexplained content removal (RedWarn rev14)
No edit summary
 
(26 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{Short description|Directory information command on various operating systems}}
{{Other uses|PWD (disambiguation)}}
{{Other uses|PWD (disambiguation)}}
{{lowercase}}
{{lowercase}}
{{Infobox software

{{Infobox Software
| name = pwd
| name = pwd
| logo =
| logo =
Line 13: Line 13:
| latest release version =
| latest release version =
| latest release date =
| latest release date =
| programming language = [[C (programming language)|C]]
| operating system = [[Multics]], [[Unix]] and [[Unix-like]], [[SpartaDOS X]], [[Panos (operating system)|PANOS]], [[Windows CE]], [[KolibriOS]]
| operating system = [[Multics]], [[Unix]], [[Unix-like]], [[V (operating system)|V]], [[Plan 9 from Bell Labs|Plan 9]], [[Inferno (operating system)|Inferno]], [[SpartaDOS X]], [[Panos (operating system)|PANOS]], [[Windows CE]], [[KolibriOS]]
| platform = [[Cross-platform]]
| genre = [[Command (computing)|Command]]
| genre = [[Command (computing)|Command]]
| license = [[coreutils]]: [[GNU General Public License#Version 3|GNU GPL v3]]
| license = [[coreutils]]: [[GPLv3+]]<br />Plan 9: [[MIT License]]
| website =
| website =
}}
}}
In [[Unix-like]] and some other [[operating system]]s, the <code>'''pwd'''</code> [[command (computing)|command]] ('''''p'''rint '''w'''orking '''d'''irectory'')<ref name="minix">{{Cite web|url=https://www.unix.com/man-page/minix/1/pwd/|title=pwd(1) [minix man page]|website=www.unix.com}}</ref><ref name="linux">{{Cite web|url=https://www.mankier.com/1/pwd|title=pwd - print name of current/working directory - man page|website=www.mankier.com}}</ref><ref name="gnu">{{Cite web|url=https://www.gnu.org/software/coreutils/manual/coreutils.html#pwd-invocation|title=GNU Coreutils|website=www.gnu.org}}</ref> writes the full [[path (computing)|pathname]] of the current [[working directory]] to the [[standard output]].<ref name="unix">{{cite book|url=http://cm.bell-labs.com/7thEdMan/v7vol1.pdf|title=Unix Time-Sharing System: Unix Programmer's Manual|edition=7th|volume=1|date=January 1979|publisher=[[Bell labs]]|page=142|archive-url=https://web.archive.org/web/20050520231659/http://cm.bell-labs.com/7thEdMan/v7vol1.pdf|archive-date=2005-05-20}}</ref><ref name="plan9">{{Cite web|title=pwd(1) [plan9 man page]|url=https://www.unix.com/man-page/plan9/1/pwd/|website=www.unix.com}}</ref><ref name="posix">{{Cite web|url=https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pwd.html|title=pwd|website=pubs.opengroup.org}}</ref><ref name="dec">{{Cite web|url=https://www.unix.com/man-page/osf1/1/pwd/|title=pwd(1) [osf1 man page]|website=www.unix.com}}</ref><ref name="apple">{{Cite web|url=https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/pwd.1.html|title=Apple OS X MAN page}}</ref><ref name="bsd">{{Cite web|url=https://man.openbsd.org/pwd.1|title=pwd(1) - OpenBSD manual pages|website=man.openbsd.org}}</ref><ref name="solaris">{{Cite web|url=https://www.unix.com/man-page/opensolaris/1/pwd/|title=pwd(1) [opensolaris man page]|website=www.unix.com}}</ref>

In [[Unix-like]] and some other [[operating system]]s, the <code>'''pwd'''</code> [[command (computing)|command]] ('''''p'''rint '''w'''orking '''d'''irectory'')<ref name="unix">{{cite book|url=http://cm.bell-labs.com/7thEdMan/v7vol1.pdf|title=Unix Time-Sharing System: Unix Programmer's Manual|edition=7th|volume=1|date=January 1979|publisher=[[Bell labs]]|page=142|archive-url=https://web.archive.org/web/20050520231659/http://cm.bell-labs.com/7thEdMan/v7vol1.pdf|archive-date=2005-05-20}}</ref><ref name="minix">[http://www.unix.com/man-page/minix/1/pwd/ Minix MAN page]</ref><ref name="linux">[https://www.mankier.com/1/pwd Linux MAN page]</ref><ref name="gnu">[https://www.gnu.org/software/coreutils/manual/coreutils.html#pwd-invocation GNU Coreutils MAN page]</ref><ref name="plan9">[http://www.unix.com/man-page/plan9/1/pwd/ Bell Labs Plan 9 MAN page]</ref>
writes the full [[path (computing)|pathname]] of the current [[working directory]] to the [[standard output]].<ref name="posix">[http://pubs.opengroup.org/onlinepubs/9699919799/utilities/pwd.html POSIX Standard (IEEE Std 1003.1) pwd page]</ref><ref name="dec">[http://www.unix.com/man-page/osf1/1/pwd/ DEC OSF/1 MAN page]</ref><ref name="apple">[https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/pwd.1.html Apple OS X MAN page]</ref><ref name="bsd">[https://man.openbsd.org/pwd.1 OpenBSD MAN page]</ref><ref name="solaris">[http://www.unix.com/man-page/opensolaris/1/pwd/ OpenSolaris MAN page]</ref>


==Implementations==
==Implementations==
[[Multics]] had a <code>pwd</code> command (which was a short name of the <code>print_wdir</code> command)<ref>{{cite web |title=working_dir, wd, print_wdir, pwd (Multics help segment) |url=http://web.mit.edu/multics-history/source/Multics/doc/info_segments/working_dir.info |website=MIT |accessdate=7 March 2020}}</ref> from which the Unix pwd command originated.<ref>{{cite web |last1=Van Vleck |first1=Tom |title=Unix and Multics |url=https://multicians.org/unix.html |website=Multicians.org |accessdate=7 March 2020}}</ref> The command is a [[shell builtin]] in most [[Unix shell]]s such as [[Bourne shell]], [[Almquist shell|ash]], [[Bash (Unix shell)|bash]], [[Korn shell|ksh]], and [[Z shell|zsh]]. It can be implemented easily with the [[POSIX]] [[C (programming language)|C]] functions <code>getcwd()</code> or <code>getwd()</code>.
[[Multics]] had a <code>pwd</code> command (which was a short name of the <code>print_wdir</code> command)<ref>{{cite web |title=working_dir, wd, print_wdir, pwd (Multics help segment) |url=http://web.mit.edu/multics-history/source/Multics/doc/info_segments/working_dir.info |website=MIT |access-date=7 March 2020}}</ref> from which the Unix pwd command originated.<ref>{{cite web |last1=Van Vleck |first1=Tom |title=Unix and Multics |url=https://multicians.org/unix.html |website=Multicians.org |access-date=7 March 2020}}</ref> The command is a [[shell builtin]] in most [[Unix shell]]s such as [[Bourne shell]], [[Almquist shell|ash]], [[Bash (Unix shell)|bash]], [[Korn shell|ksh]], and [[Z shell|zsh]]. It can be implemented easily with the [[POSIX]] [[C (programming language)|C]] functions <code>getcwd()</code> or <code>getwd()</code>.


It is also available in the operating systems [[SpartaDOS X]],<ref>{{Cite web|url=http://sdx.atari8.info/sdx_files/4.48/SDX448_User_Guide.pdf|title=SpartaDOS X 4.48 User Guide}}</ref> [[Panos (operating system)|PANOS]],<ref>{{Cite web|url=http://chrisacorns.computinghistory.org.uk/Panos.html#CL|title=Chris's Acorns: Panos|website=chrisacorns.computinghistory.org.uk}}</ref> and [[KolibriOS]].<ref>{{Cite web|url=http://wiki.kolibrios.org/wiki/Shell|title=Shell - KolibriOS wiki|website=wiki.kolibrios.org}}</ref> The equivalent on [[DOS]] (<code>[[COMMAND.COM]]</code>) and [[Microsoft Windows]] (<code>[[cmd.exe]]</code>) is the <code>[[cd (command)|cd]]</code> command with no arguments. [[Windows PowerShell]] provides the equivalent <code>Get-Location</code> [[cmdlet]] with the standard aliases <code>gl</code> and <code>pwd</code>.
It is also available in the operating systems [[SpartaDOS X]],<ref>
[http://sdx.atari8.info/sdx_files/4.48/SDX448_User_Guide.pdf SpartaDOS X 4.48 User Guide]</ref> [[Panos (operating system)|PANOS]],<ref>http://chrisacorns.computinghistory.org.uk/Panos.html#CL</ref> and [[KolibriOS]].<ref>http://wiki.kolibrios.org/wiki/Shell</ref> The equivalent on [[DOS]] (<code>[[COMMAND.COM]]</code>) and [[Microsoft Windows]] (<code>[[cmd.exe]]</code>) is the <code>[[cd (command)|cd]]</code> command with no arguments. [[Windows PowerShell]] provides the equivalent <code>Get-Location</code> [[cmdlet]] with the standard aliases <code>gl</code> and <code>pwd</code>.
On [[Windows CE 5.0]], the <code>cmd.exe</code> ''Command Processor Shell'' includes the <code>pwd</code> command.<ref>{{Cite web|url=https://docs.microsoft.com/en-us/previous-versions/windows/embedded/ms907227(v=msdn.10)|title=Command Processor Commands (Windows CE 5.0)|website=docs.microsoft.com}}</ref>
On [[Windows CE 5.0]], the <code>cmd.exe</code> ''Command Processor Shell'' includes the <code>pwd</code> command.<ref>{{Cite web|url=https://docs.microsoft.com/en-us/previous-versions/windows/embedded/ms907227(v=msdn.10)|title=Command Processor Commands (Windows CE 5.0)|website=docs.microsoft.com}}</ref>


Line 32: Line 31:


The [[numerical analysis|numerical computing]] environments [[MATLAB]] and [[GNU Octave]] include a <code>pwd</code>
The [[numerical analysis|numerical computing]] environments [[MATLAB]] and [[GNU Octave]] include a <code>pwd</code>
function with similar functionality.<ref>https://www.mathworks.com/help/matlab/ref/pwd.html</ref><ref>https://octave.sourceforge.io/octave/function/pwd.html</ref> The [[OpenVMS]] equivalent is <code>show default</code>.
function with similar functionality.<ref>{{Cite web|url=https://www.mathworks.com/help/matlab/ref/pwd.html|title=Identify current folder - MATLAB pwd|website=www.mathworks.com}}</ref><ref>{{Cite web|url=https://octave.sourceforge.io/octave/function/pwd.html|title=Function Reference: pwd|website=octave.sourceforge.io}}</ref> The [[OpenVMS]] equivalent is <code>show default</code>.


==*nix examples==
==*nix examples==
{| class="wikitable"
{| class="wikitable"
! <tt>Command</tt> !! Explanation
! <code>Command</code> !! Explanation
|-
|-
| <tt>pwd</tt> || Display the current working directory. Example: /home/foobar
| <code>pwd</code> || Display the current working directory. Example: /home/foobar
|-
|-
| <tt>pwd -P</tt> || 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
| <code>pwd -P</code> || 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
|-
|-
| <tt>pwd -L</tt> || 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
| <code>pwd -L</code> || 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 <tt>-L</tt> switch were provided.
Note: POSIX requires that the default behavior be as if the <code>-L</code> switch were provided.


==Working directory shell variables==
==Working directory shell variables==
POSIX shells set the following [[environment variable]]s while using the cd command:<ref>[http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cd.html POSIX Standard (IEEE Std 1003.1) cd page]</ref>
POSIX shells set the following [[environment variable]]s while using the cd command:<ref>{{Cite web|url=https://pubs.opengroup.org/onlinepubs/9699919799/utilities/cd.html|title=cd|website=pubs.opengroup.org}}</ref>


; OLDPWD : The previous working directory (as set by the cd command).
; OLDPWD : The previous working directory (as set by the cd command).
Line 72: Line 71:
| isbn = 978-0470113851}}
| isbn = 978-0470113851}}


==External links==
{{Wikibooks|Guide to Unix|Commands}}
* {{man|cu|pwd}}
* {{man|1|pwd|FreeBSD}}
* {{man|1|pwd|NetBSD}}
* {{man|1|pwd|OpenBSD}}
* {{man|1|pwd|Solaris}}
* {{man|1|pwd|Linux}}
* {{man|1|pwd|Plan 9}}
* {{man|1|pwd|Inferno}}

{{Unix commands}}
{{Plan 9 commands}}
{{GNU}}
{{GNU}}
{{Core Utilities commands}}
{{Core Utilities commands}}
{{Unix commands}}


[[Category:Multics commands]]
[[Category:Unix SUS2008 utilities]]
[[Category:Unix SUS2008 utilities]]
[[Category:Plan 9 commands]]
[[Category:Inferno (operating system) commands]]
[[Category:IBM i Qshell commands]]
[[Category:File system directories]]
[[Category:File system directories]]

Latest revision as of 05:30, 7 May 2023

pwd
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
PlatformCross-platform
TypeCommand
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]

Implementations[edit]

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[edit]

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[edit]

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

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

See also[edit]

References[edit]

  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. ^ "SpartaDOS X 4.48 User Guide" (PDF).
  14. ^ "Chris's Acorns: Panos". chrisacorns.computinghistory.org.uk.
  15. ^ "Shell - KolibriOS wiki". wiki.kolibrios.org.
  16. ^ "Command Processor Commands (Windows CE 5.0)". docs.microsoft.com.
  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". www.mathworks.com.
  21. ^ "Function Reference: pwd". octave.sourceforge.io.
  22. ^ "cd". pubs.opengroup.org.

Further reading[edit]

External links[edit]