Pwd: Difference between revisions
Tag: section blanking |
Artoria2e5 (talk | contribs) No edit summary |
||
(29 intermediate revisions by 14 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}} |
||
⚫ | |||
⚫ | |||
| 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]] |
| 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]]: [[ |
| 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> |
|||
==Implementations== |
|||
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> |
|||
[[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>. |
|||
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 [[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" |
||
! < |
! <code>Command</code> !! Explanation |
||
|- |
|- |
||
| < |
| <code>pwd</code> || Display the current working directory. Example: /home/foobar |
||
|- |
|- |
||
| < |
| <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 |
||
|- |
|- |
||
| < |
| <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 < |
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> |
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 60: | 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}} |
|||
⚫ | |||
{{Plan 9 commands}} |
|||
{{GNU}} |
{{GNU}} |
||
{{Core Utilities commands}} |
{{Core Utilities 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
Original author(s) | AT&T Bell Laboratories |
---|---|
Developer(s) | Various open-source and commercial developers |
Initial release | June 1974 |
Written in | C |
Operating system | Multics, Unix, Unix-like, V, Plan 9, Inferno, SpartaDOS X, PANOS, Windows CE, KolibriOS |
Platform | Cross-platform |
Type | Command |
License | coreutils: 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]- Breadcrumb (navigation), an alternative way of displaying the work directory
- List of GNU Core Utilities commands
- List of Unix commands
pushd
andpopd
References
[edit]- ^ "pwd(1) [minix man page]". www.unix.com.
- ^ "pwd - print name of current/working directory - man page". www.mankier.com.
- ^ "GNU Coreutils". www.gnu.org.
- ^ 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.
- ^ "pwd(1) [plan9 man page]". www.unix.com.
- ^ "pwd". pubs.opengroup.org.
- ^ "pwd(1) [osf1 man page]". www.unix.com.
- ^ "Apple OS X MAN page".
- ^ "pwd(1) - OpenBSD manual pages". man.openbsd.org.
- ^ "pwd(1) [opensolaris man page]". www.unix.com.
- ^ "working_dir, wd, print_wdir, pwd (Multics help segment)". MIT. Retrieved 7 March 2020.
- ^ Van Vleck, Tom. "Unix and Multics". Multicians.org. Retrieved 7 March 2020.
- ^ "SpartaDOS X 4.48 User Guide" (PDF).
- ^ "Chris's Acorns: Panos". chrisacorns.computinghistory.org.uk.
- ^ "Shell - KolibriOS wiki". wiki.kolibrios.org.
- ^ "Command Processor Commands (Windows CE 5.0)". docs.microsoft.com.
- ^ The Single UNIX Specification, Version 4 from The Open Group – Shell and Utilities Reference,
- ^ FreeBSD General Commands Manual –
- ^ Linux User Manual – User Commands –
- ^ "Identify current folder - MATLAB pwd". www.mathworks.com.
- ^ "Function Reference: pwd". octave.sourceforge.io.
- ^ "cd". pubs.opengroup.org.
Further reading
[edit]- McElhearn, Kirk (2006). The Mac OS X Command Line: Unix Under the Hood. John Wiley & Sons. ISBN 978-0470113851.
External links
[edit]- The Single UNIX Specification, Version 4 from The Open Group – Shell and Utilities Reference,
- FreeBSD General Commands Manual –
- NetBSD General Commands Manual –
- OpenBSD General Commands Manual –
- Solaris 11.4 User Commands Reference Manual –
- Linux User Manual – User Commands –
- Plan 9 Programmer's Manual, Volume 1 –
- Inferno General commands Manual –