lsとして報告されたディレクトリサイズ[重複]

lsとして報告されたディレクトリサイズ[重複]

ls報告されたサイズは実際のサイズではなく、ディレクトリ内のinodeの数に対応することを理解しています。

を使用してディレクトリサイズを表示するときに奇妙な動作が見つかりましたls。迅速に再現する方法は次のとおりです。

まず、空のディレクトリを作成します。報告されたサイズlsは4096です(予想通り)。

mkdir test
ll -d test/
drwx------ 2 root root 4,096  2015-Dec-29  22:22:36  test/

その中に10,000個のファイルを作成します。報告されたサイズは現在167,936です。

touch test/{1..9999}
ll -d test/
drwx------ 2 root root 167,936  2015-Dec-29  22:23:24  test/

すべてのファイルを削除します。サイズをもう一度4096に縮小する必要があります。

rm test/*
ll -d test/
drwx------ 2 root root 167,936  2015-Dec-29  22:23:59  test/

ただし、報告されたサイズはまだ167,936です。

なぜ?

誰かがこれを説明できますか?

ベストアンサー1

通常、ディレクトリファイルはクリーンアップされません。これらのスペースは通常、コンテンツと比較して十分に小さく、これを行うことは効果的ではありません(特に再び大きくなる可能性が高いため)。この質問に対する権威ある答えを見つけるのは難しいかもしれません。フォーラムコメントでは、次のように簡単に説明します。

おすすめ記事