Ubuntuからファイルを削除するのはなぜこんなに遅いのですか?

Ubuntuからファイルを削除するのはなぜこんなに遅いのですか?

Linuxでファイルを削除すると、実際には削除されず、inodeテーブルのファイルへのリンクのみが削除されるというstackoveflowの記事を読んでいました。それでは、削除が一定の時間操作ではないのはなぜですか?

私も実験してみました。 1500個の画像を含むフォルダを作成し、これらの画像のtarオブジェクトを作成しました。ディレクトリとtarファイルのサイズは同じです。 tarオブジェクトと1500ピクチャディレクトリを削除する手順は次のとおりです。

tarファイルを削除してくださいtime rm test.tar


real    0m0.024s
user    0m0.001s
sys     0m0.024s

ディレクトリの削除:time rm -r test


real    0m0.219s
user    0m0.024s
sys     0m0.191s

私が理解したのは、この時間の違いは、1つのファイルのリンク
解除と1,500のファイルのリンク解除によるものです。しかし、tarオブジェクトの削除は1500倍速くなければなりませんか?

答え1

このためいいえ簡単な「削除された単一のinodeを表示」操作:https://www.slashroot.in/how-does-file-deletion-work-linux

スコープの使用により、少なくともext4ファイルの削除は、ext2 / ext3パーティションよりもはるかに高速です。

SSDの場合、SSDの寿命を延ばすためにファイルに属するすべてのブロックを物理的に削除するようにSSDに指示する「Discard」オプションを使用しているため、ファイルの削除が必要以上に遅くなる可能性があります。これは高さですいいえ無効にすることをお勧めします。

関連情報