空のディレクトリサイズ

空のディレクトリサイズ
drwxrwxr-x 2 xyz xyz 176128 Jul 29 02:03 20170429  
drwxrwxr-x 2 xyz xyz 110592 Jul 31 01:22 20170430

cd 20170429  
ls -lart  
total 196  
drwxrwxr-x   2 xyz xyz 176128 Jul 29 02:03 .  
drwxrwxr-x 253 xyz xyz 20480 Aug  4 00:00 ..  


du -sh 20170429
176K    20170429

du -sh 20170430
124K    20170430

上記の情報を参照して空のディレクトリを20170429実行20170429したときに、メモリスペースがまだ176128、176128と表示される理由を知りたいです。ls -lrtこの情報はどこから来るか。アイノードから来たのですか?それにもかかわらず、du -sh空のディレクトリについては、それぞれ176kと124kが表示されます。

答え1

私のもの推測するこれは、ディレクトリに多数のファイルが含まれていて、ファイルが削除されたときにファイルシステムがディレクトリエントリを切り捨てなかったことです。

例:

$ mkdir test_dir

$ du -h test_dir
2.0K    test_dir

$ touch test_dir/file{001..500}-{01..10}

これで、5000個の空のファイルを含むディレクトリが作成されました。

$ du -h test_dir
102K    test_dir

サイズは、空のファイルのディレクトリエントリからのみ取得されます。

$ rm test_dir/file*

$ du -h test_dir
102K    test_dir

ファイルを削除してもサイズは小さくなりません(このファイルシステムでは)。

関連情報