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

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 

该目录可能在过去的某个时间点有很多文件(数千个),但现在不是。 这里发生了什么事?

您的目录可能已经看到很多操作,操作系统还没有回收已经使用的空间。 如果你用完所有空间的目录被称为bigdir那么你可以通过洗牌来解决这个问题

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

确保无论什么访问bigdir不打算,而你做洗牌。

一旦文件系统不再被使用,文件系统不一定会从目录中回收数据块。