Linux(ext3)中只有 2 个文件的目录占用 32000 个块(16Mbytes)

Linux(ext3)中只有 2 个文件的目录占用 32000 个块(16Mbytes)

IIRC 我的操作系统课程,Linux 中目录的大小由其包含的文件数量决定([维基百科链接])1

那么,为什么只有2个文件的目录占用了32000个块?

# stat .
  File: «.»
  Size: 16855040        Blocks: 32968      IO Block: 4096   directorio
Device: 6805h/26629d    Inode: 3047425     Links: 2
Access: (0775/drwxrwxr-x)  Uid: (  501/   jboss)   Gid: (  501/   jboss)
Access: 2011-08-26 12:00:20.000000000 +0200
Modify: 2011-08-26 10:58:07.000000000 +0200
Change: 2011-08-26 10:58:07.000000000 +0200

该目录可能在过去的某个时间点包含大量文件(数千个),但现在没有了。这是怎么回事?

答案1

您的目录可能已经发生了很多操作,而操作系统尚未回收已使用的空间。您可以通过重新排列内容来解决这个问题,如果您调用了占用所有空间的目录,bigdir那么您可以

mkdir newdir
mv bigdir/* newdir
rmdir bigdir
mv newdir bigdir

确保在进行混洗时,任何访问 bigdir 的内容都不会被访问。

答案2

一旦目录不再使用,文件系统就不一定会回收其中的块。

相关内容