为什么 ls 和 du 显示不同的大小?

use*_*263 23 linux ls

我正在用 rtorrent 下载一个文件,

当我检查文件所在的文件夹时,使用ls命令的文件大小为4.4GB,但是当我使用du命令检查磁盘时,它显示我219MB,同样的问题df似乎只是计算 219MB 的命令。


这是我的控制台结果

root@SERVER:/home/.root/TMP/tnt/d1/xxx# dir -alh

total 219M
drwxr-xr-x  2 root root 4.0K 2010-01-10 15:30 .
drwxr-xr-x 15 root root 4.0K 2010-01-10 15:30 ..
-rw-r--r--  1 root root 4.4G 2010-01-11 10:55 yyy.mkv

root@SERVER:/home/.root/TMP/tnt/d1/xxx# du -h

219M    .

root@SERVER:/home/.root/TMP/tnt/d1/xxx# 
Run Code Online (Sandbox Code Playgroud)

Jam*_*ley 41

这是一个稀疏文件ls正在报告分配的大小;du正在报告实际使用的空间量。

随着您的 torrent 客户端下载更多,它将填补空白,报告的du大小将增长以匹配ls报告。

要强制dudf包含空格,man du列出的第二个选项是--apparent-size

du -s -B1 --apparent-size
Run Code Online (Sandbox Code Playgroud)