为什么linux命令du和ls的输出有区别?

2 linux unix centos bash shell

我在执行“ls -l”时在 linux 机器中有一个文件,其大小为 3404494030。当我执行“ls -lh”时,它显示 3.2 GB,这是从字节转换为千兆字节时正确的。但是当我对同一个文件执行“du -h”时,它显示 4 GB。我尝试了很多实例,但我发现“ls”和“du”的输出之间存在不一致。我还尝试通过右键单击文件并通过文件属性监视其大小,使用 filezilla 客户端(Windows 上的 ftp 客户端)查看文件的大小。"ls" 和 filezilla 的输出匹配。我正在使用 CentOS,我想知道这是“du”的错误还是我对“du”的理解有问题。之前有人问过类似的问题。我查了一下,发现这是一个微不足道的问题。

ale*_*lex 6

ls 显示为文件分配的空间。

du 显示文件实际使用的空间量。