为什么猫的体型小于实际文件?

use*_*557 3 bash cat

我想知道这里发生了什么,如果实际上我正在正确地连接文件或者正在丢失其中一些文件.因此,我想将文件夹(称为de)中的所有文件(所有txt)捕获到单个txt文件中.这是我的两种方式:

cat de/* >> de_merged_all
du -h de_merged_all
353M    de_merged_all
Run Code Online (Sandbox Code Playgroud)

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

 du -h de
 383M   de
Run Code Online (Sandbox Code Playgroud)

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

Joe*_*Joe 8

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
Run Code Online (Sandbox Code Playgroud)

一个字节的文件占用磁盘上的4KiB.