だからウィキペディア(協会pwd
)コマンドが「作業ディレクトリの印刷」の略であることを示します。これは意味があります。
ただし、環境変数の場合、「P」は印刷以外の意味の略語でなければなりません。
人々が「現在の作業ディレクトリ」について話しているのを聞いてください。この方法はより聞き取りやすく直感的ですが、環境変数はまだ$ CWDではなく$ PWDと呼ばれるようです。 「印刷作業ディレクトリ変数を確認しましたか?」と言った人はいません。
私は現在WebアプリケーションサーバーであるuWSGIを使用しています。これを実行すると(uWSGI統計ページで)、次のメッセージが表示されます。
"cwd":"/home/velle/greendrinks",
cwd
だから彼らは明らかに(より直感的な略語)を好みますpwd
。
私が何かを間違って理解しているのかを調べようと努力しているようです。それとも、環境変数に直感的ではない名前を付ける問題ですか?
答え1
それはあなたが何をしているかに依存します。まず、シェル組み込みまたは実際のバイナリである$PWD
環境変数があります。pwd
$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
$PWD
このフラグを使用しないと、bash組み込み機能は単に現在の値を印刷します-P
。説明したようにhelp pwd
:
pwd: pwd [-LP]
現在の作業ディレクトリの名前を印刷します。
オプション:
-L
$PWD
現在の作業ディレクトリが指定されている場合は、値を印刷します。-P
シンボリックリンクなしで実際のディレクトリを印刷します。
デフォルトでは、「pwd」は「-L」が指定されたかのように動作します。
pwd
一方、バイナリは通過します。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
答え2
$PWD
~である人現在の名前ワット翡翠D目次。
シンボリックリンクがある場合、$PWD
読み取り結果はコマンドの実行と異なる場合がありますpwd
。