Jump to content

Pwd: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Rgada28 (talk | contribs)
Changed and error
Tags: Mobile edit Mobile web edit
No edit summary
 
(45 intermediate revisions by 21 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
| name = pwd
| logo =
| screenshot = Pwdkommando.png
| screenshot size =
| caption = The <code>pwd</code> command
| author = [[AT&T Bell Laboratories]]
| developer = Various [[open-source software|open-source]] and [[commercial software|commercial]] developers
| released = {{Start date and age|1974|6}}
| latest release version =
| latest release date =
| programming language = [[C (programming language)|C]]
| 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]]
| license = [[coreutils]]: [[GPLv3+]]<br />Plan 9: [[MIT License]]
| 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>


==Implementations==
In [[Unix-like]] and some other [[operating system]]s, the <code>'''pwd'''</code> [[command (computing)|command]] ('''''p'''resent '''w'''orking '''d'''irectory'')<ref name="unix">[http://cm.bell-labs.com/7thEdMan/v7vol1.pdf UNIX TIME-SHARING SYSTEM: UNIX PROGRAMMER’S MANUAL Seventh Edition, Volume 1 (January, 1979) by Bell labs, Page 142]</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>
[[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>.
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>


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>.
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>.
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>


{{code|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]].<ref>{{man|cu|wc|SUS}}</ref> It appeared in [[Ancient UNIX|Version 5 Unix]].<ref>{{man|1|pwd|FreeBSD}}</ref> The version of <code>pwd</code> bundled in [[GNU]] [[coreutils]] was written by Jim Meyering.<ref>{{man|1|pwd|Linux}}</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>. The [[OpenVMS]] equivalent is <code>show default</code>.

The [[numerical analysis|numerical computing]] environments [[MATLAB]] and [[GNU Octave]] include a <code>pwd</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>{{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).
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>
; PWD : The current working directory (as set by the cd command).

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


==See also==
==See also==
* [[Breadcrumb (navigation)]], an alternative way of displaying the work directory
* [[Breadcrumb (navigation)]], an alternative way of displaying the work directory
* [[List of GNU Core Utilities commands]]
* [[List of GNU Core Utilities commands]]
* [[List of Unix programs]]
* [[List of Unix commands]]
* [[pushd and popd|<code>pushd</code> and <code>popd</code>]]
* [[pushd and popd|<code>pushd</code> and <code>popd</code>]]


==References==
==References==
{{Reflist}}
<references/>


==Further reading==
* {{cite book
| author-last = McElhearn
| author-first = Kirk
| title = The Mac OS X Command Line: Unix Under the Hood
| date = 2006
| publisher = [[John Wiley & Sons]]
| 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]