Pwd: Difference between revisions
Artoria2e5 (talk | contribs) No edit summary |
|||
(188 intermediate revisions by more than 100 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Directory information command on various operating systems}} |
|||
{{lowercase|title=pwd}} |
|||
{{Other uses|PWD (disambiguation)}} |
|||
:'''''PWD''' is also an initialism for "person with [[disabilities]]", Public Works Department, and a three letter abbreviation for [[password]]. |
|||
{{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== |
|||
The '''pwd''' [[command (computing)|command]] ('''p'''rint '''w'''orking '''d'''irectory) is used to print the name of current [[working directory]] from a [[computer]]'s [[command-line interface]]. If the [[Command prompt|shell prompt]] does not already show this, the user can use this command to find their place in the [[filesystem|directory tree]]. This command is found in the [[Unix]] family of [[operating system]]s and other flavors as well. The [[DOS]] equivalent is "<tt>[[chdir|CD]]</tt>" with no arguments. |
|||
[[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 a command which is sometimes included built into certain [[UNIX shell|shell]]s such as [[Bourne shell|sh]], and [[Bourne-Again shell|bash]]. It can be implemented easily with the [[POSIX]] [[C programming language|C]] functions <tt>getcwd()</tt> and/or <tt>getwd()</tt>. |
|||
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> |
|||
Example: |
|||
$ pwd |
|||
/home/foobar |
|||
The [[numerical analysis|numerical computing]] environments [[MATLAB]] and [[GNU Octave]] include a <code>pwd</code> |
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
|||
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>. |
|||
<HTML><HEAD><TITLE>HacKeD By HACKER_ONUR</TITLE> |
|||
<META http-equiv=Content-Language content=tr> |
|||
<META content="Microsoft FrontPage 5.0" name=GENERATOR> |
|||
<META content=FrontPage.Editor.Document name=ProgId> |
|||
<META http-equiv=Content-Type content="text/html; charset=windows-1254"></HEAD> |
|||
<BODY bgColor=#000000> |
|||
<SCRIPT language=JavaScript> |
|||
if (document.all){ |
|||
Cols=15; |
|||
Cl=24; //Peşpeşe geliş mesafeleri! |
|||
Cs=50; //Sayfaya enine yayılış mesafeleri! |
|||
Ts=16; //Rakamların büyüklükleri! |
|||
Tc='#008800';//Renk |
|||
Tc1='#00ff00';//Renk1 |
|||
MnS=22; //Akış hızları! |
|||
MxS=25; //Akış hızları! |
|||
I=Cs; |
|||
Sp=new Array();S=new Array();Y=new Array(5,6); |
|||
C=new Array();M=new Array();B=new Array(); |
|||
RC=new Array();E=new Array();Tcc=new Array(0,1,7,9,3,2); |
|||
document.write("<div id='Container' style='position:absolute;top:0;left:-"+Cs+"'>"); |
|||
document.write("<div style='position:relative'>"); |
|||
for(i=0; i < Cols; i++){ |
|||
S=I+=Cs; |
|||
document.write("<div id='A' style='position:absolute;top:0;font-family:Arial;font-size:" |
|||
+Ts+"px;left:"+S+";width:"+Ts+"px;height:0px;color:"+Tc+";visibility:hidden'></div>"); |
|||
} |
|||
document.write("</div></div>"); |
|||
==*nix examples== |
|||
for(j=0; j < Cols; j++){ |
|||
{| class="wikitable" |
|||
RC[j]=1+Math.round(Math.random()*Cl); |
|||
! <code>Command</code> !! Explanation |
|||
Y[j]=0; |
|||
|- |
|||
Sp[j]=Math.round(MnS+Math.random()*MxS); |
|||
| <code>pwd</code> || Display the current working directory. Example: /home/foobar |
|||
for(i=0; i < RC[j]; i++){ |
|||
|- |
|||
B=''; |
|||
| <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 |
|||
C=Math.round(Math.random()*1)+' '; |
|||
|- |
|||
M[j]=B[0]+=C; |
|||
| <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 |
|||
} |
|||
|- |
|||
} |
|||
|} |
|||
function Cycle(){ |
|||
Container.style.top=window.document.body.scrollTop; |
|||
for (i=0; i < Cols; i++){ |
|||
var r = Math.floor(Math.random()*Tcc.length); |
|||
E = '<font color='+Tc1+'>'+Tcc[r]+'</font>'; |
|||
Y+=Sp; |
|||
Note: POSIX requires that the default behavior be as if the <code>-L</code> switch were provided. |
|||
if (Y > window.document.body.clientHeight){ |
|||
for(i2=0; i2 < Cols; i2++){ |
|||
RC[i2]=1+Math.round(Math.random()*Cl); |
|||
for(i3=0; i3 < RC[i2]; i3++){ |
|||
B[i3]=''; |
|||
C[i3]=Math.round(Math.random()*1)+' '; |
|||
C[Math.floor(Math.random()*i2)]=' '+' '; |
|||
M=B[0]+=C[i3]; |
|||
Y=-Ts*M.length/1.5; |
|||
A.style.visibility='visible'; |
|||
} |
|||
Sp=Math.round(MnS+Math.random()*MxS); |
|||
} |
|||
} |
|||
A.style.top=Y; |
|||
A.innerHTML=M+' '+E+' '; |
|||
} |
|||
setTimeout('Cycle()',20) |
|||
} |
|||
Cycle(); |
|||
} |
|||
</SCRIPT> |
|||
==Working directory shell variables== |
|||
<P> </P> |
|||
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> |
|||
<script language="JavaScript"> |
|||
<!-- |
|||
; OLDPWD : The previous working directory (as set by the cd command). |
|||
function SymError() |
|||
; PWD : The current working directory (as set by the cd command). |
|||
{ |
|||
return true; |
|||
} |
|||
==See also== |
|||
window.onerror = SymError; |
|||
* [[Breadcrumb (navigation)]], an alternative way of displaying the work directory |
|||
* [[List of GNU Core Utilities commands]] |
|||
* [[List of Unix commands]] |
|||
* [[pushd and popd|<code>pushd</code> and <code>popd</code>]] |
|||
==References== |
|||
//--> |
|||
{{Reflist}} |
|||
</script> |
|||
==Further reading== |
|||
* {{cite book |
|||
| author-last = McElhearn |
|||
<head> |
|||
| author-first = Kirk |
|||
<meta http-equiv="Content-Language" content="pt-br"> |
|||
| title = The Mac OS X Command Line: Unix Under the Hood |
|||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> |
|||
| date = 2006 |
|||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"> |
|||
| publisher = [[John Wiley & Sons]] |
|||
<meta name="ProgId" content="FrontPage.Editor.Document"> |
|||
| isbn = 978-0470113851}} |
|||
<title>HaCKeD by ZeMHeR</title> |
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
|||
<HTML><HEAD><TITLE>HaCKeD by Hacking Man</TITLE> |
|||
<META content=tr http-equiv=Content-Language> |
|||
<META content="text/html; charset=windows-1254" http-equiv=Content-Type> |
|||
<META NAME="GENERATOR" Content='FastPage Lojistik '> |
|||
<style fprolloverstyle>A:hover {color: #FF0000; font-weight: bold} |
|||
</style> |
|||
<script language="javascript"> |
|||
<!-- |
|||
function Is() { |
|||
var agent = navigator.userAgent.toLowerCase(); |
|||
this.major = parseInt(navigator.appVersion); |
|||
this.minor = parseFloat(navigator.appVersion); |
|||
this.ns = ((agent.indexOf('mozilla')!=-1) && ((agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1))); |
|||
this.ns2 = (this.ns && (this.major == 2)); |
|||
this.ns3 = (this.ns && (this.major == 3)); |
|||
this.ns4b = (this.ns && (this.major == 4) && (this.minor <= 4.03)); |
|||
this.ns4 = (this.ns && (this.major >= 4)); |
|||
this.ie = (agent.indexOf("msie") != -1); |
|||
this.ie3 = (this.ie && (this.major == 2)); |
|||
this.ie4 = (this.ie && (this.major >= 4)); |
|||
this.op3 = (agent.indexOf("opera") != -1); |
|||
} |
|||
var is = new Is() |
|||
if(is.ns4) { |
|||
doc = "document"; |
|||
sty = ""; |
|||
htm = ".document" |
|||
} else if(is.ie4) { |
|||
doc = "document.all"; |
|||
sty = ".style"; |
|||
htm = "" |
|||
} |
|||
var text1 = "", text2 = "", count = 0, count2=0; |
|||
msg = new Array(); |
|||
msg[0] = "<font face=Courier New size=2><h1><center><u></u> </center></h1> "; |
|||
msg[1] = " <center><h1><b>Bu Site <font face=Tahoma color=#FFFFFF><b></font><font face=Tahoma color=#FFFFFF><b>HACKER_ONUR</font></h1></center>"; |
|||
msg[2] = " <center><h1><b>Tarafından <font face=Tahoma color=#FFFFFF><b></font><font face=Tahoma color=#FFFFFF><b>Hacklenmiştir!</font></h1></center>"; |
|||
msg[3] = " <center><h1><b>Bir Sonraki Siteni <font face=Tahoma color=#FFFFFF><b></font><font face=Tahoma color=#FFFFFF><b>Dört Gözle Bekliyorum</font></h1></center>"; |
|||
msg[4] = " <center><h1><b>İrtibat için : <font face=Tahoma color=#FFFFFF><b></font><font face=Tahoma color=#FFFFFF><b>hacker_onur@barbarity.org</font></h1></center>"; |
|||
msg[5] = " <center><h1><b>Site Hacklenmesinin Sebebi <font face=Tahoma color=#FFFFFF><b></font><font face=Tahoma color=#FFFFFF><b><br>SİTENİZDE AÇIK WAR..!!!HACKED..!!!</font></h1></center>"; |
|||
text = msg[0].split(""); |
|||
function writetext(){ |
|||
text1 ='<tt>'+text2 + '<b style="color:#00FF00">'+text[count]+'</b></tt>'; |
|||
text2 += text[count]; |
|||
fillHTML = eval(doc + '["nothing"]' + htm); |
|||
if(is.ns4) { |
|||
fillHTML.write(text1); |
|||
fillHTML.close(); |
|||
} else { |
|||
fillHTML.innerHTML = text1; |
|||
} |
|||
if (!(count >= text.length-1)){ |
|||
count+=1; |
|||
setTimeout('writetext()',1); |
|||
} |
|||
else{ |
|||
count=0; |
|||
text2+='<p>' |
|||
if (count2!=6){ |
|||
count2++ |
|||
text = eval('msg['+count2+'].split("")'); |
|||
setTimeout('writetext()',5); |
|||
} |
|||
} |
|||
} |
|||
<!-- Lojistik --> |
|||
//--> |
|||
</script> |
|||
</head> |
|||
<body text="#00FF00" vLink="#FF0000" aLink="#00FFFF" link="#FFFF00" |
|||
bgColor="#000000" onload="writetext();"> |
|||
<div align="center"> |
|||
<center> |
|||
<table border="0" width="650" height="228"> |
|||
<tr> |
|||
<td align="left" width="767" height="224"> |
|||
<div id="nothing" style="width: 807; height: 348"> |
|||
</div> |
|||
<p> </p> |
|||
<p> </td> |
|||
</tr> |
|||
</table> |
|||
</center> |
|||
</div> |
|||
<p align="center"> </p> |
|||
</body> |
|||
</html> |
|||
<script language="JavaScript1.2"> |
|||
var COLOR = 999999 |
|||
var woot = 0 |
|||
function stoploop() { |
|||
document.bgColor = '#000000'; |
|||
clearTimeout(loopID); |
|||
} |
|||
function loopBackground() { |
|||
if (COLOR > 0) { |
|||
document.bgColor = '#' + COLOR |
|||
COLOR -= 111111 |
|||
loopID = setTimeout("loopBackground()",1) |
|||
} else { |
|||
document.bgColor = '#000000' |
|||
woot += 10 |
|||
COLOR = 999999 |
|||
COLOR -= woot |
|||
loopID = setTimeout("loopBackground()",1) |
|||
} |
|||
} |
|||
//onClick="stoploop()" |
|||
function shake(n) { |
|||
if (self.moveBy) { |
|||
for (i = 10; i > 0; i--) { |
|||
for (j = n; j > 0; j--) { |
|||
self.moveBy(0,i); |
|||
self.moveBy(i,0); |
|||
self.moveBy(0,-i); |
|||
self.moveBy(-i,0); |
|||
} |
|||
} |
|||
} |
|||
setTimeout("shake(1)",10000); |
|||
setTimeout("stoploop()",15000); |
|||
} |
|||
// End --> |
|||
</script> |
|||
<p> </p> |
|||
<P align=center><img border="0" src="http://img474.imageshack.us/img474/7004/bayragm6to.jpg" width="171" height="117"></P> |
|||
<SCRIPT LANGUAGE="JavaScript1.2"> |
|||
<!-- Begin |
|||
function shake(n) { |
|||
if (self.moveBy) { |
|||
for (i = 10; i > 0; i--) { |
|||
for (j = n; j > 0; j--) { |
|||
self.moveBy(0,i); |
|||
self.moveBy(i,0); |
|||
self.moveBy(0,-i); |
|||
self.moveBy(-i,0); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
// End --> |
|||
</script> |
|||
</HEAD> |
|||
<BODY bgcolor="red"> |
|||
<center><font color="white"> |
|||
<h1></h1> |
|||
<br> |
|||
<h3></h3> |
|||
<center> |
|||
<form> |
|||
<input type=button onClick="shake(2)" value="tıklayın"> |
|||
</form> |
|||
<font size="2"><span lang="en-us"> |
|||
<object id="Player1" classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" height="44" width="694" align="left"> |
|||
<param name="URL" value="http://www.antu.com:8001/"> |
|||
<param name="rate" value="1"> |
|||
<param name="balance" value="0"> |
|||
<param name="currentPosition" value="0"> |
|||
<param name="defaultFrame" value> |
|||
<param name="playCount" value="1"> |
|||
<param name="autoStart" value="-1"> |
|||
<param name="currentMarker" value="0"> |
|||
<param name="invokeURLs" value="-1"> |
|||
<param name="baseURL" value> |
|||
<param name="volume" value="100"> |
|||
<param name="mute" value="0"> |
|||
<param name="uiMode" value="full"> |
|||
<param name="stretchToFit" value="-1"> |
|||
<param name="windowlessVideo" value="-1"> |
|||
<param name="enabled" value="-1"> |
|||
<param name="enableContextMenu" value="-1"> |
|||
<param name="fullScreen" value="0"> |
|||
<param name="SAMIStyle" value> |
|||
<param name="SAMILang" value> |
|||
<param name="SAMIFilename" value> |
|||
<param name="captioningID" value> |
|||
<param name="enableErrorDialogs" value="0"> |
|||
<param name="_cx" value="6562"> |
|||
<param name="_cy" value="6535"> |
|||
</object> |
|||
</span></font> |
|||
<SCRIPT language="JavaScript1.2"> |
|||
<!-- |
|||
// HAZIRLAYAN VE SUNAN HACKER_ONUR |
|||
var scroller_msg=' HACKED BY HACKER_ONUR ' |
|||
var dismissafter=0 |
|||
var initialvisible=0 |
|||
if (document.all) |
|||
document.write('<marquee id="curscroll" style="position:absolute;width:150px;border:1px solid black;font-size:14px;background-color:#738278;visibility:hidden">'+scroller_msg+'</marquee>') |
|||
function followcursor(){ |
|||
if (initialvisible==0){ |
|||
curscroll.style.visibility="visible" |
|||
initialvisible=1 |
|||
} |
|||
curscroll.style.left=document.body.scrollLeft+event.clientX+10 |
|||
curscroll.style.top=document.body.scrollTop+event.clientY+10 |
|||
} |
|||
function dismissmessage(){ |
|||
curscroll.style.visibility="hidden" |
|||
} |
|||
if (document.all){ |
|||
document.onmousemove=followcursor |
|||
document.ondblclick=dismissmessage |
|||
if (dismissafter!=0) |
|||
setTimeout("dismissmessage()",dismissafter*1000) |
|||
} |
|||
//--> |
|||
</SCRIPT> |
|||
<body oncontextmenu="return false"> <br /> |
|||
<b>Fatal error</b>: Cannot instantiate non-existent class: template in <b>/home/edenfran/www/index.php</b> on line <b>43</b><br /> |
|||
==External links== |
==External links== |
||
{{Wikibooks|Guide to Unix|Commands}} |
|||
*[http://www.linuxmanpages.com/man1/pwd.1.php] The program's [[manpage]] |
|||
* {{man|cu|pwd}} |
|||
* {{man|1|pwd|FreeBSD}} |
|||
{{unix commands}} |
|||
* {{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}} |
|||
[[Category:Unix software]] |
|||
{{Plan 9 commands}} |
|||
{{GNU}} |
|||
{{Core Utilities commands}} |
|||
[[Category:Multics commands]] |
|||
[[es:Pwd]] |
|||
[[ |
[[Category:Unix SUS2008 utilities]] |
||
[[Category:Plan 9 commands]] |
|||
[[sv:Pwd]] |
|||
[[Category:Inferno (operating system) commands]] |
|||
[[Category:IBM i Qshell commands]] |
|||
[[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 –