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
通常、ディレクトリファイルはクリーンアップされません。これらのスペースは通常、コンテンツと比較して十分に小さく、これを行うことは効果的ではありません(特に再び大きくなる可能性が高いため)。この質問に対する権威ある答えを見つけるのは難しいかもしれません。フォーラムコメントでは、次のように簡単に説明します。
- ディレクトリサイズを縮小/リセットしますか?
- Linuxディレクトリは自動的に縮小されません。いくつかの洞察も提供されています。
- アイテムを削除してもアイテム数が多いディレクトリのサイズが小さくならないのはなぜですか?Linuxへの信頼できる回答の提供