为什么猫的大小比实际文件小?

why the cat size is smaller than the actual files?

我想知道这里发生了什么,实际上我是在正确地连接文件还是丢失了一些文件。所以,我想将一个文件夹(称为de)中的所有文件(所有txt)都cat到一个txt文件中。这是我的两种方式:

cat de/* >> de_merged_all
du -h de_merged_all
353M    de_merged_all

现在如果我检查文件夹 de ​​的大小,我得到:

 du -h de
 383M   de

那么,为什么这些数字不匹配?

du 测量磁盘使用情况。由于每个文件都被您的文件系统舍入到一个更大的块,因此单个小文件比单个组合文件占用更多存储空间。

例如:

$ echo >a
$ ls -l a
-rw-r--r-- 1 user group 1 May 23 18:33 a
joe@seashell:/tmp$ du -h a
4.0K    a

一个单字节文件占用磁盘空间 4KiB。