du -h --max-depth = 1需要很长时间

时间:2013-04-16 06:47:23

标签: linux du

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

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

由于

1 个答案:

答案 0 :(得分:19)

命令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块的形式返回磁盘使用情况,并且报告的稀疏文件磁盘使用量可能比%s ls返回的文件大小更小或稍大一些命令。因此,'%k'的行为类似于单个文件的du命令。

如果您想要结合finddu的功能,可以将它们组合起来。

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