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
ファイルを削除してもサイズは小さくなりません(このファイルシステムでは)。