空目录大小

空目录大小
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

参照以上信息,我想知道对于空目录2017042920170429为什么我们执行时仍然显示内存空间为 176128 和 176128。ls -lrt这些信息从何而来?是来自 inode 吗?还请注意,即使如此,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

当文件被删除时,大小不会减小(在此文件系统上)。

相关内容