在树1.5中使用树命令打印目录内容的大小?


39

我喜欢tree这是显示文件和文件夹/目录大小的好方法。但是-h选项仅显示目录的大小,而不显示目录内容的累积大小。

/media/
├── [ 16K]  64D9-E862
│   ├── [8.0K]  downloads

我知道我的外部驱动器中有超过16kB的事实。

如何使用tree 1.5修复该问题?更好的是如何升级到1.6?

Answers:


45

仅适用于1.6及以上的树

您可能要看一下:

man tree

--du对于每个目录,报告其大小,作为其所有文件和子目录(及其文件等)的大小累加。最终报告中也提供了已用空间的总量(例如'du -c'命令。)此选项要求树在发出目录树之前先读取整个目录树,请参见下面的“错误和注释”。表示-s。

因此,您应该使用:

tree --du -h

5
这用于在1.6中指向--du。我总是使用du -h --max-depth = 1或2或最大3。然后向下钻(cd)到我想去的地方,然后再次运行相同的命令。当将树与-L一起使用时,它仅计算指定级别的目录/和文件。与du对应,无论--max-depth参数如何,都将计算所有文件,但仅打印到指定级别。它使树对我没有帮助。不过谢谢!
塔加尔

我建议将-a选项添加到隐藏的输出位置(以点开头,例如.cache)
瓦特

3

加上已接受的答案...任何数量的文件夹,您都可能从该命令中获得巨大的输出。

如果像我一样,由于要填满驱动器而想确定要清除的一些大文件夹,则可能会发现将tree命令与grep结合使用以将其限制为千兆字节大小的文件夹很有用,从而节省了您的需要遍历整个输出:

tree --du -h | grep G]


-4

请使用此代码可能会对您有所帮助,

$ sudo tree -hF

要么

# tree -hF

1
这与OP在4年前提出的要求
不符
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.