什么是最可靠的命令来查找文件linux的实际大小

Inv*_*tus 7 unix linux

最近我试图使用各种命令找出文件的大小,它显示了巨大的差异.

ls -ltr显示它的大小约为34GB(由我舍入的字节),而du -sh文件名显示它大约为11GB.stat命令显示大约34GB左右.任何想法,哪个是最可靠的命令来查找文件的实际大小?

对它执行了一些复制操作,我们不确定这是否适当地完成,因为在执行复制的某个时间源文件被我们的工作删除之后.

tha*_*guy 16

这里没有不准确或可靠性问题,您只是比较两个不同的数字:逻辑大小与物理大小.

这是维基百科对稀疏文件的说明:

稀疏文件

ls显示灰色+绿色区域,文件的逻辑长度.du(没有--apparent-size)只显示绿色区域,因为那些是占用空间的区域.

您可以使用创建稀疏文件dd count=0 bs=1M seek=100 of=myfile.

ls 显示100MiB,因为这是文件的长度:

$ ls -lh myfile
-rw-r----- 1 me me 100M Jul 15 10:57 myfile
Run Code Online (Sandbox Code Playgroud)

du 显示0,因为它分配了多少数据:

$ du myfile
0 myfile
Run Code Online (Sandbox Code Playgroud)

  • 此外,某些文件系统可能会存储压缩的数据,从而使差异更大. (2认同)