【问题标题】:finding size of a file using ls and du .what is difference [duplicate]使用 ls 和 du 查找文件的大小。有什么区别 [重复]
【发布时间】:2014-07-20 12:18:49
【问题描述】:

我的服务器中有一个名为 today.log 的文件。

ls -l today.log 显示 400GB。

du -sh today.log。显示 240GB

ls和du有什么区别...

【问题讨论】:

    标签: bash shell unix admin


    【解决方案1】:

    du 显示文件使用了多少磁盘。 ls 显示文件有多大。这两个值可以不同。带孔的文件占用的空间比它们的大小要少。大多数文件并没有完全填满文件系统的块,因此它们占用的空间超过了它们的大小。具有单个字节的文件仍至少占用一个完整块。 (通常为 512 或 1024 字节。)例如,考虑在位置 183738475(随机输入的数字)处具有单个字节的文件。该文件可以使用单个块存储在磁盘上(每当内核向文件系统查询文件中的单个字节以外的字节时,文件系统会将它们报告为零,并且不需要存储任何内容。并非所有文件系统都有效这种方式。)但是文件的大小是183738475,所以ls会报告这个,du会报告文件系统使用了多少块。 du -h 将报告使用的块数乘以转换为人类可读格式的块大小。请记住,实际数字会因您的文件系统而异。例如:

    $ echo > foo; ls -l foo |awk '{print $5}'; du foo; du -h foo
    1
    8   foo
    4.0K    foo
    

    此文件大小为 1 字节,但占用磁盘上的 8 个块,块大小为 512,因此这 8 个块占用 4k。 (我的文件系统针对大文件进行了优化,小文件比较浪费空间。)

    【讨论】:

      猜你喜欢
      • 2013-07-04
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 2012-12-10
      • 1970-01-01
      相关资源
      最近更新 更多