「ls $PWD」と「ls」。別のファイルをインポートしています。キャッシュがおかしいですか?

「ls $PWD」と「ls」。別のファイルをインポートしています。キャッシュがおかしいですか?

私のLinux Mintコンピュータには奇妙な問題があります(ソリッドステートドライブがある場合はソリッドステートドライブを使用)。どういうわけか機械は(複数の場合)その他「ls」の代わりに「ls $ PWD」を使用すると、同じファイルの内容が異なります。または単に「ls」です。これは、現在の作業ディレクトリにファイルを書き込み、別のディレクトリから別の内容をコピーできることを意味します。

これは$ PWD設定エラーではないため、ディレクトリ名を手動で入力できます。

非常に注意深く確認してみましたが、行き来します。これにより、本番スクリプトとコードを生成してテストするのが難しくなります。

adam@RADIUM:/home/adam/cd2/adam_dev/rsim ==> ls .
ClearPrice.cme Makefile.win data gfiles rsim5.tmp src zlib
ClearPrice.src ReadMe.txt err include rsimdone.txt tools
Makefile build g2f out scripts vs2013
adam@RADIUM:/home/adam/cd2/adam_dev/rsim ==>
adam@RADIUM:/home/adam/cd2/adam_dev/rsim ==> echo $PWD
/home/adam/cd2/adam_dev/rsim
adam@RADIUM:/home/adam/cd2/adam_dev/rsim ==> ls $PWD
ClearPrice.cmd Makefile.win err include scripts vs2013
ClearPrice.src ReadMe.txt g2f out src zlib Makefile build
gfiles rsimdone.txt tools
adam@RADIUM:/home/adam/cd2/adam_dev/rsim ==>

ベストアンサー1

現在のディレクトリ内で現在のディレクトリの名前を変更または移動すると、これが発生する可能性があります。

たとえば、

$ mkdir /tmp/X
$ cd /tmp/X
$ mkdir Y Z
$ cd Y
$ touch a b c d e f
$ mv ../Y ../A
$ mv ../Z ../Y
$ echo $PWD
/tmp/X/Y
$ ls
a  b  c  d  e  f
$ ls $PWD
$ 

ディレクトリのinode番号を見ると、違いがわかります。

$ ls -ldi . $PWD
26871815 drwxr-xr-x 2 sweh sweh 4096 Jul 12 17:27 ./
26872035 drwxr-xr-x 2 sweh sweh 4096 Jul 12 17:27 /tmp/X/Y/

/bin/pwd他の値が返されるため、これを検出することもできます。

$ /bin/pwd
/tmp/X/A
$ echo $PWD
/tmp/X/Y

基本的に$PWDシェルがある場所考えるあなたがいる場所が必ずしも実際にある場所ではありません :-)

おすすめ記事