我对 Linux 中命令 'du' 的输出感到困惑

我对 Linux 中命令 'du' 的输出感到困惑

我创建了一个名为 file.o 的文件,我想检查 file.o 文件的大小。

du -h file.o ====> 4.0K

du -b file.o ====> 1120

根据du -b file.o,我知道 file.o 有 1120bytes 大小。但是为什么du -h file.o输出 4.0K(意味着 4*1024 字节)?

答案1

文件较小,但它占用磁盘上一个完整的 4.0K 块(一个块中只能有一个文件)。如果它的字节大小为(例如)5678 字节,它将占用两个 4.0K 块,即 8.0K。

du -b以字节为单位打印大小,覆盖默认块大小。

答案2

除了 eumiro 的回答之外,每个文件系统/分区的块大小可能不同。

tune2fs -l /dev/<disk> | grep '^Block size'您可以使用或查找文件系统的块大小stat -c "%o" <file on the disk>

相关内容