如果目录中的数据相同,为什么 2 个目录的大小不同?它们是相同的 ext4 分区和磁盘

如果目录中的数据相同,为什么 2 个目录的大小不同?它们是相同的 ext4 分区和磁盘
root@phoenix:~# ls -ld /backups/external?/var/subsonic/thumbs/110
drwxr-xr-x 2 root root 73728 Mar  4 15:35 /backups/external3/var/subsonic/thumbs/110
drwxr-xr-x 2 root root 69632 Mar  4 15:35 /backups/external4/var/subsonic/thumbs/110

上述目录的内容相同。磁盘和文件系统配置相同。但目录的大小他们自己是不同的。

是的,所讨论目录的内容是相同的,我已经使用 diff -r、rsync -avx 以及 beyond compare 进行了检查。以下是 diff -r 输出:

root@phoenix:~# diff -r /backups/external{3,4}/var/subsonic/thumbs/110
root@phoenix:~# 

du -bs 输出:

root@phoenix:~# du -bs /backups/external?/var/subsonic/thumbs/110
4116125 /backups/external3/var/subsonic/thumbs/110
4112029 /backups/external4/var/subsonic/thumbs/110

du -b --总输出计数仅每个目录内的文件

root@phoenix:~# du -b --total /backups/external3/var/subsonic/thumbs/110/* | tail -1 
4042397 total
root@phoenix:~# du -b --total /backups/external4/var/subsonic/thumbs/110/* | tail -1 
4042397 total

因此,对于 external3:

4042397 + 73728 = 4116125

对于 external4:

4042397 + 69632 = 4112029

添加到目录本身大小的文件大小与 du -bs 的输出相匹配。

答案1

ls -l目录报告的大小与其中存储的文件的累计大小没有关系。

对于大多数常见文件系统来说,它只是存储目录条目所需的字节大小。此大小随块大小而增加(例如:4096、8192……)。一个块中可以存储多少个条目取决于文件系统,并且还随条目文件名长度而变化。

删除目录条目时,目录大小不受影响,以减少碎片。

在您的示例中,external3目录已18 * 4096分配块,而external417 * 4096块。

这只是意味着前者存储了更多文件(或名称更长的文件),即使目录内容当前相同。没什么大不了的。

相关内容