2012-01-16 6 views
1

これは私の最初の投稿です。Linuxでハードディスクに要求せずにファイルが存在するかどうかを確認できますか?

ファイルが存在するがハードディスクを使用していないかどうかを確認したい。例えば、次のコードを見てください。

<?php 
$filename = '/path/to/foo.txt'; 

if (file_exists($filename)) { 
    echo "The file $filename exists"; 
} else { 
    echo "The file $filename does not exist"; 
} 
?> 

私が知る限り、ext4はファイルシステムをジャーナリングしています。それは、ファイルがジャーナルを調べて存在するかどうかをスクリプトが確認できることを意味しますか?それはハードディスクに触れることなくメインメモリですか?

お時間をいただきありがとうございます。

UPD。

ハードディスクのジャーナルをメインメモリに保持するファイルシステムが存在するため、ハードディスクにアクセスせずにファイルの操作を行うことができますか?

答えて

5

ジャーナル(a)はディスク上に存在し、(b)は完全に別の問題を解決します。

このような呼び出しをすると、カーネルはファイルシステムに尋ねます。ファイル構造の必要なブロックがメモリにキャッシュされている場合、ディスクにはアクセスしません。もしそうでなければ、そうなるでしょう。

+0

ありがとうございました、あなたの答えは、はっきりと明らかになりました。しかし、もう一つ知りたいのは、一度に2つのfile_existsリクエストを作成した場合、ハードディスクの同じ部分がアクセスされているのか、それともハードディスクの一部ではないのでしょうか? – Fedor

+0

彼らはどこにでもいる可能性があります。ディレクトリは1つのディスクブロックに収まらず、ファイルシステムは必ずしもそれらをまとめておく必要はありません。 – bmargulies

-1

ハードディスクにアクセスするには、ハードディスクにアクセスする必要があります。今実際にファイルを開きますか?私はそう思わないだろう。

+0

ハードディスクのジャーナルをメインメモリに保存するファイルシステムはありますか?そのため、ハードディスクにアクセスせずにファイルの操作を行うことができますか? – Fedor

+2

私はそれを聞いたことがない。それはちょうどあまりにも多くのメモリを占有し、あまり使用することはありません。ハードディスクにアクセスしたくない理由はありますか? – BrettAdamsGA

+1

これに伴う別の問題は、ほとんどのメモリが揮発性であるため、ジャーナル、テーブル、リストなどを毎回メモリにロードする必要があることです。 – BrettAdamsGA

1

いいえファイルシステムジャーナルは完全にメモリ内に保持されず、すべてのメタデータがファイルシステムに含まれていません。これは、不正確なアンマウントからの回復をより速くするためのツールとしてのみ使用されています。

関連する問題