【问题标题】:du -h --max-depth=1 takes long time [closed]du -h --max-depth=1 需要很长时间[关闭]
【发布时间】:2013-04-16 06:47:22
【问题描述】:

当我尝试计算目录中文件和目录的大小时,需要更长的时间。我使用的命令是du -ch --max-depth=1

还有其他方法可以计算文件和文件夹的总大小吗?

谢谢

【问题讨论】:

    标签: linux du


    【解决方案1】:

    命令du默认(递归)检索目录中所有文件和所有子目录的磁盘使用情况。所以du 花费的时间与分析的文件数量有关。 -s--summarize--max-depth 选项只会影响命令的输出(而不是扫描本身)。

    一些限制文件扫描的du 选项是--one-file-system、--exclude 和--exclude-from。

    如果您不想递归到子目录,您可以使用 find 代替,这样您就可以更好地控制要分析的文件。但它不能递归总结磁盘使用情况。

    find /path/to/dir -maxdepth 1 -printf  "%k\t%p\n"
    

    注意,%k 总是以 1k 块为单位返回磁盘使用情况,并且报告的稀疏文件的磁盘使用情况可能小于或略大于 ls 命令的%s 返回的文件大小。因此 '%k' 的行为类似于单个文件的 du 命令。

    如果你想结合finddu 的功能,你可以通过类似的方式结合它们。

    find . -maxdepth 1 -name "xyz*" -print0 | du --files0-from=-
    

    【讨论】:

      猜你喜欢
      • 2022-01-19
      • 2014-10-08
      • 1970-01-01
      • 1970-01-01
      • 2013-06-29
      • 2014-08-16
      • 2013-09-07
      • 2020-08-26
      • 2014-10-09
      相关资源
      最近更新 更多