2013-08-13 7 views
5

は、(削除)などのファイルを示していますが、私はまだ、ファイルシステムでそれを見ることができるのLinux 2.6.27で

からの出力は、私は(削除)ファイルを開いたFDを保持しているプロセスを参照してください「lsofを」 。奇妙なことは、 "ls"を使ってファイルシステム内のファイルを見ることができるということです。何故ですか?

ありがとうございました。

答えて

5

ファイルが開いているプロセスがある限り、ファイルは削除されません。ファイルが閉じられると、カーネルは最初にファイルを開いているプロセスの数をチェックします。このカウントが0に達した場合、カーネルはリンクカウントをチェックします。 0の場合、ファイルの内容は削除されます。名前がファイルへの最後のリンクだったが、それでも ファイルがファイルを開いているすべてのプロセスがそれを参照する最後のファイル 記述子まで存在にとどまる場合

:男性unlinkから引用し

閉じています。

+0

これは、unlinkは常に名前を削除し、時にはファイルを削除すると言います。 'ls'でファイルを見ることができれば、その名前は削除されていません。そういうわけではありません。これをテストするには、あるプロセスでファイルを開き、別のプロセスでファイルを削除して 'ls'を実行します。 – philh

5

ファイルが削除されると、ファイルシステムには表示されません。ただし、同じ場所に同じファイル名の別のファイルが作成されている可能性があります。

lsofls -iのノード番号を確認して、実際に同じファイルであることを確認できます。

関連する問題

 関連する問題