19

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

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

谢谢

4

1 回答 1

24

该命令du默认检索目录和所有子目录中所有文件的磁盘使用情况(递归)。因此花费的时间du与分析的文件数量有关。选项-sor--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单个文件的命令。

如果您想结合 和 的功能,find可以du通过类似的方式将它们结合起来。

find . -maxdepth 1 -name "xyz*" -print0 | du --files0-from=-
于 2013-04-16T07:20:22.723 回答