4

なぜこれが起こるのか、そして「pwd」についての誤解について一般的な質問があります。

ディレクトリ /test から開始すると、その中に /test/folder1 があります。

フォルダ 1 の内容: file1.txt

2 つの別々のターミナルで「cd /test」を実行し、「ls」を実行して、両方のターミナルの出力として folder1 を検出します。

端末1で「cd folder1」を実行します。ターミナル 2 は /test のままです。

次に、ターミナル 2 で「mv folder1 folder2」を実行し、「ls」を実行すると、出力として folder2 が取得されます。私たちのMVが成功したことを明確に示しています。

ただし、ターミナル 1 (/test/folder1 にありました) 内で「pwd」を実行すると、出力は /test/folder1 のままです。つまり、フォルダを /test/folder2 に移動したことを反映していません。

これはなぜですか?file1.txt を編集すると、同じファイルを指しているはずのファイル システム内のポインターに過ぎない理由が理解できます。実際、各端末でファイルを変更し、他の端末で編集内容を確認できるのと同じです。しかし、「pwd」コマンドがそのディレクトリへの実際のパスを反映しなくなったのはなぜですか?

ありがとう!

4

2 に答える 2

5

あなたがbashを使用していると仮定するとpwd、環境変数の値が表示PWDされます。これは、でディレクトリを変更すると更新されますcd. ディレクトリのfolder1名前を変更しても、bash は更新されませんPWD。ただし、ディレクトリの名前が変更されたという証拠を見つけることができます。

  • pwd -Pディレクトリの新しい名前が表示されます。
  • ls -l /proc/self/cwd新しい名前にリンクします。
于 2014-03-04T20:09:18.087 に答える
1

最初の端末がどこにあるかを再評価する理由がないのは、まさにそのケースだと思います。最初のターミナルで次のコマンドを実行すると

cd .

現在の作業ディレクトリが実際に名前変更 ( mv) ごとに変更されていることがわかります。

于 2014-03-04T20:02:34.100 に答える