So sagt mir Wikipedia (link), dass der Befehl pwd ist die Abkürzung für „Arbeitsverzeichnis drucken“, und das macht Sinn.
Aber für die Umgebungsvariable muss das „P“ ein Akronym für etwas anderes als print.
seinIch höre Leute über „aktuelles Arbeitsverzeichnis“ sprechen, was besser klingt und intuitiver ist, aber die Umgebungsvariable scheint immer noch $PWD und nicht $CWD zu heißen. Niemand sagt jemals „Haben Sie die Variable für das Druck-Arbeitsverzeichnis überprüft?“.
Ich spiele gerade mit dem Webanwendungsserver uWSGI herum, und wenn er läuft, sagt er mir (auf der uWSGI-Statistikseite):
"cwd":"/home/velle/greendrinks",
daher mögen sie offensichtlich das (intuitivere Akronym) cwd über pwd .
Ich schätze, ich versuche herauszufinden, ob ich etwas falsch verstanden habe oder ob es nur darum geht, der Umgebungsvariable einen nicht intuitiven Namen gegeben zu haben?
Akzeptierte Antwort:
Das hängt davon ab, was Sie tun. Zuerst einmal $PWD ist eine Umgebungsvariable und pwd ist eine eingebaute Shell oder eine tatsächliche Binärdatei:
$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
Jetzt gibt die eingebaute Bash einfach den aktuellen Wert von $PWD aus es sei denn, Sie verwenden das -P Flagge. Wie in help pwd erklärt :
pwd: pwd [-LP]
- Den Namen des aktuellen Arbeitsverzeichnisses ausgeben.
Optionen:
-L - den Wert von
$PWD ausgeben wenn es das aktuelle Arbeitsverzeichnis nennt
-P
- gibt das physische Verzeichnis ohne symbolische Links aus
Standardmäßig verhält sich „pwd“ so, als ob „-L“ angegeben wäre.
Das pwd Binary hingegen bekommt das aktuelle Verzeichnis durch getcwd(3) Systemaufruf, der denselben Wert zurückgibt wie readlink -f /proc/self/cwd .
Versuchen Sie zur Veranschaulichung, in ein Verzeichnis zu wechseln, das ein Link zu einem anderen ist:
$ ls -l
total 4
drwxr-xr-x 2 terdon terdon 4096 Jun 4 11:22 foo
lrwxrwxrwx 1 terdon terdon 4 Jun 4 11:22 linktofoo -> foo/
$ cd linktofoo
$ echo $PWD
/home/terdon/foo/linktofoo
$ pwd
/home/terdon/foo/linktofoo
$ /bin/pwd
/home/terdon/foo/foo
Also, abschließend, auf GNU-Systemen (wie Ubuntu), pwd und echo $PWD sind äquivalent, es sei denn, Sie verwenden das -P Option, sondern /bin/pwd ist anders und verhält sich wie pwd -P .
Quelle https://askubuntu.com/a/476633/291937