これを行う:
php -r 'unlink("path"); clearstatcache(); echo file_exists("path");'
path は、Linux マシン上のファイルへの完全な絶対パスです。1
ファイルが明らかに存在しないにもかかわらず、コマンドが ' ' を返しています。このコマンドは何百万回も実行できますが、常にファイルがそこにあることがわかります。
ランニング:
ls path
そのようなファイルはありません。
何が与えますか?
更新: clearstatcache() については知っています。この場合、それは役に立ちません。さらに、これをcliで実行しています。実行ごとに何も変わりません。また、ubuntu 11.10 を実行している 64 ビット VM を使用しています。
パスは、ファイル システム上の単なるパスです: /var/www/yo.txt。www は nfs 共有マウントですが、それが関係しているかどうかはわかりません。ファイルはリモート マシンから削除されましたが、ローカル マシンはそのファイルが存在しないことを認識しているようです。ディレクトリの 'ls' はファイルを表示せず、パス クレームを含む ls はファイルが存在しないことを示します。ファイルはほんの数キロバイトで、大したことはありません。