【发布时间】:2013-04-16 06:47:22
【问题描述】:
当我尝试计算目录中文件和目录的大小时,需要更长的时间。我使用的命令是du -ch --max-depth=1。
还有其他方法可以计算文件和文件夹的总大小吗?
谢谢
【问题讨论】:
当我尝试计算目录中文件和目录的大小时,需要更长的时间。我使用的命令是du -ch --max-depth=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 命令。
如果你想结合find 和du 的功能,你可以通过类似的方式结合它们。
find . -maxdepth 1 -name "xyz*" -print0 | du --files0-from=-
【讨论】: