`ls`コマンドは最新のディレクトリの内容をリストしません。

`ls`コマンドは最新のディレクトリの内容をリストしません。

Linux シェルは ls を使用しても最新の情報を印刷しません。たとえば、別のプロセス(IDEなど)を使用していくつかのディレクトリを作成します。ただし、lsコマンドを実行すると、これらのディレクトリは表示されません。 ls出力にディレクトリが表示されるのに通常、数秒(時々数分)かかります。

何が問題なの?強制的に更新できますか?理想的には、「ls」と言うときにキャッシュされた結果ではなく、入力されたコマンドの状態を確認したいと思います。

ファイルシステムがNFS共有ではありません。私が考えることができる唯一のことは、Eclipseで実行するとプログラムによってディレクトリが作成されることです(そして、ディスプレイは私のローカルWindowsボックスにルーティングされます)。

これが状況にどのような影響を与えるか疑問に思います。

ベストアンサー1

lsbashどんな殻にも関係ありません。.カーネルにリストを要求して、隠しファイル(名前が次に始まるファイル)を除いてディレクトリの内容を一覧表示します。

表示されない場合は、lsそのオペレーティングシステムが存在しないか(オペレーティングシステムに関する限り)、無効なディレクトリが一覧表示されます。

たとえば、現在のディレクトリの名前が足の下から変更された場合に発生します。良い:

$ pwd
/tmp/1
$ ls
x
$ mv /tmp/1 /tmp/2
$ pwd
/tmp/1 # (/tmp/1 has been renamed but the shell is not aware of it)
$ mkdir /tmp/1
$ touch /tmp/1/y
$ pwd
/tmp/1
$ ls  # (ls is still listing `.` which has not changed, but now is a hardlink to `/tmp/2`, while `/tmp/1` is some new directory)
x
$ pwd -P  # (double check what the current directory is)
/tmp/2
$ cd /tmp/1
$ ls
y

おすすめ記事