【问题标题】:Difference between ls -l and du [closed]ls -l 和 du 之间的区别
【发布时间】:2013-07-04 14:44:43
【问题描述】:

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

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

但是当我触发du xyz.txt 时,输出如下:

15632   xyz.txt

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

注意OS info:Mac OS X Lion 10.7.5

【问题讨论】:

  • du 告诉您文件在磁盘上占用的“块”数——通常每个块 512 字节。 ls 告诉你逻辑文件大小; du 是在谈论用于存储文件的硬件数量,并且它的数量有时会更高一些。算一算,你会发现它成功了。

标签: macos unix operating-system


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    来自manpage

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

    [...]

    如果未设置BLOCKSIZE,并且-k 未指定选项,块数将显示在 512 字节块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 2021-11-08
      • 1970-01-01
      • 2021-04-16
      • 2016-11-15
      相关资源
      最近更新 更多