したがって、ウィキペディア(リンク)は、コマンドpwd
「printworkingdirectory」の略で、それは理にかなっています。
ただし、環境変数の場合、「P」は印刷以外の頭字語である必要があります。
人々が「現在の作業ディレクトリ」について話しているのを聞きます。これはより良く聞こえ、より直感的ですが、それでも環境変数は$CWDではなく$PWDと呼ばれているようです。 「印刷作業ディレクトリ変数を確認しましたか?」と言う人は誰もいません。
私は現在、WebアプリケーションサーバーuWSGIで遊んでいますが、実行すると(uWSGI統計ページで)次のように表示されます:
"cwd":"/home/velle/greendrinks",
だから彼らは明らかに(より直感的な頭字語)cwd
が好きです pwd
以上 。
何かを誤解したのか、それとも環境変数に直感的でない名前を付けただけなのかを理解しようとしているのではないでしょうか。
承認された回答:
それはあなたがしていることに依存します。まず、$PWD
は環境変数であり、pwd
シェルビルトインまたは実際のバイナリです:
$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
これで、bashビルトインは$PWD
の現在の値を出力するだけです。 -P
を使用しない限り 国旗。 help pwd
で説明されているように :
pwd: pwd [-LP]
現在の作業ディレクトリの名前を出力します。
オプション:
-L
$PWD
の値を出力します 現在の作業ディレクトリに名前を付ける場合
-P
シンボリックリンクなしで物理ディレクトリを印刷します
デフォルトでは、「pwd」は「-L」が指定されているかのように動作します。
pwd
一方、binaryは、getcwd(3)
を介して現在のディレクトリを取得します。 readlink -f /proc/self/cwd
と同じ値を返すシステムコール 。
説明のために、別のディレクトリへのリンクであるディレクトリに移動してみてください:
$ 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
したがって、結論として、GNUシステム(Ubuntuなど)では、pwd
およびecho $PWD
-P
を使用しない限り、同等です オプションですが、/bin/pwd
は異なり、pwd -P
のように動作します 。
ソース https://askubuntu.com/a/476633/291937