当我尝试计算目录中文件和目录的大小时,需要更长的时间。我使用的命令是du -ch --max-depth=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
命令。
如果您想要结合find
和du
的功能,可以将它们组合起来。
find . -maxdepth 1 -name "xyz*" -print0 | du --files0-from=-