Linuxシェルは、lsに関しては最新の情報を出力しません。たとえば、他のプロセス(IDEなど)を使用していくつかのディレクトリを作成します。ただし、lsコマンドを実行すると、これらのディレクトリが表示されません。そのディレクトリがls出力に表示されるまで、通常は数秒、場合によっては数分かかります。
何が起こっている?強制的に更新できますか?理想的には、「ls」と言うとき、キャッシュされた結果ではなく、コマンドを入力したときのステータスを確認したいのです。
ファイルシステムはNFS共有ではありません。私が考えることができる他の唯一のことは、ディレクトリがEclipseから実行されたときにプログラムによって作成された(そして表示が私のローカルウィンドウボックスにルーティングされた)ことです
これが物事にどのように影響するかわかりませんが
承認された回答:
ls
bash
とは何の関係もありません または任意のシェル。非表示のファイル(名前が.
)カーネルからそのリストを要求することによって
ls
の場合 それらが表示されない場合は、(OSに関する限り)そこにないか、間違ったディレクトリをリストしています。
これは、たとえば、現在のディレクトリの名前が自分の足元で変更された場合に発生する可能性があります。いいね:
$ 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