ls -l和du之间的区别

时间:2013-07-06 20:25:05

标签: macos unix operating-system

我有一个文件命名为xyx.txtls -l显示如下:

-rw-r--r--  1 MRG  staff  8000000 Jul  7 01:30 xyz.txt

但是当我解雇du xyz.txt时,下面是输出:

15632   xyz.txt

有人可以告诉我为什么差异以及磁盘中文件的实际大小是多少。感谢。

  

N.B。OS info:Mac OS X Lion 10.7.5

2 个答案:

答案 0 :(得分:1)

来自manpage

  

du实用程序显示每个文件参数的文件系统块使用情况

     

[...]

     

如果未设置BLOCKSIZE,则-k                   如果未指定选项,则会显示块计数                   512字节块。

答案 1 :(得分:1)

UNIX文件系统允许稀疏文件。未分配的块读为0,但在磁盘上不占用空间。 du命令将提供已分配块的实际数量,而ls将显示已分配块和未分配空洞的总大小。

那就是说,这不是这里发生的事情。

du显示文件占用的512字节块(15632)的总数。 ls向您显示实际文件大小(8,000,000字节)。 512 * 15632 = 8003584,这是8,000,000四舍五入到下一个4K字节边界。

这个文件不稀疏,两个数字都是一致的。

相关问题