我经常使用
du --max-depth=n -h | sort --human-numeric-sort
现在我想tree
以类似的方式使用。我发现这里部分答案
tree -sh --sort=size --du
报告每个目录的累计大小(如)。这--du
也会报告每个文件。如果我只想报告目录,我应该添加到。但似乎做了两件事:tree
du
-d
tree
-d
- 从报告中删除文件。
- 从每个目录计算的累计总数中删除文件大小。
当然,我只想要 1,而不是 2(就像du
那样)。所以
tree -sh --sort=size --du -d
总是会报告“小”尺寸,而不考虑文件大小。
能tree
解决这个问题吗?还有其他选择吗?
答案1
这绝对是 的一个缺点tree
。它只总结“它所看到的”的大小。如果你忽略带有-d
或的文件,-I
或者如果你限制深度,tree
则会报告“错误”的目录大小。
如果你不需要限制级别,那么这个方法很好:
tree --du -shaC | sed -n '/\[01;34m/p'
作为来自环境变量01;34
的目录的颜色值( )。LS_COLORS
...di=01;34...
但是如果您想限制级别,使用此方法最深级别仍会报告错误的目录大小。
考虑使用更高级的工具,例如ncdu
。
也可以看看U&L SE 上有这个非常相似的问题。