Donc Wikipedia ( link ) me dit que la commande pwd
est l'abréviation de "print working directory", et cela a du sens.
Mais pour la variable d'environnement, le "P" doit être un acronyme pour autre chose que print.
J'entends des gens parler de "répertoire de travail actuel", qui sonne mieux et est plus intuitif, mais la variable d'environnement semble toujours s'appeler $ PWD, et non $ CWD. Personne n'a jamais dit "Avez-vous vérifié la variable du répertoire de travail d'impression?".
Je joue actuellement avec le serveur d'applications Web uWSGI, et lors de son exécution, il me dit (sur la page de statistiques uWSGI):
"cwd":"/home/velle/greendrinks",
donc ils aiment évidemment le (acronyme plus intuitif) cwd
sur pwd
.
Je suppose que j'essaie de comprendre si j'ai mal compris quelque chose, ou s'il s'agit simplement d'avoir donné à la variable d'environnement un nom non intuitif?
Cela dépend de ce que vous faites. Tout d'abord, $PWD
Est une variable d'environnement et pwd
est un shell intégré ou un binaire réel:
$ type -a pwd
pwd is a Shell builtin
pwd is /bin/pwd
Maintenant, le bash intégré affichera simplement la valeur actuelle de $PWD
Sauf si vous utilisez le drapeau -P
. Comme expliqué dans help pwd
:
pwd: pwd [-LP]
Imprimez le nom du répertoire de travail actuel.
Options:
-L
afficher la valeur de
$PWD
s'il nomme le répertoire de travail courant-P
imprimer le répertoire physique, sans aucun lien symbolique
Par défaut, "pwd" se comporte comme si "-L" était spécifié.
Le binaire pwd
, d'autre part, obtient le répertoire courant via l'appel système getcwd(3)
qui renvoie la même valeur que readlink -f /proc/self/cwd
. Pour illustrer cela, essayez de vous déplacer dans un répertoire qui est un lien vers un autre:
$ 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
Donc, en conclusion, sur les systèmes GNU (comme Ubuntu), pwd
et echo $PWD
Sont équivalents à moins que vous n'utilisiez l'option -P
, mais /bin/pwd
est différent et se comporte comme pwd -P
.
$ PWD est le P nom du courant W orking D répertoire
Lorsqu'il y a des liens symboliques, les résultats peuvent différer de la lecture de $ PWD à l'exécution de la commande pwd .