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

Pur*_*ret 73 disk-usage tree

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

/media/
??? [ 16K]  64D9-E862
?   ??? [8.0K]  downloads
Run Code Online (Sandbox Code Playgroud)

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

我怎样才能用树 1.5 解决这个问题?更好的是我如何升级到 1.6?

squ*_*org 83

仅适用于树 1.6 及以上

你可能想看看:

man tree
Run Code Online (Sandbox Code Playgroud)

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

所以你应该使用:

tree --du -h
Run Code Online (Sandbox Code Playgroud)

  • 这用于指向 1.6 中的 --du。我总是使用 du -h --max-depth= 1 或 2 或最大值 3。然后向下钻取 (cd) 到我想去的地方,并运行相同的命令 agin。当 tree 与 -L 一起使用时,它只计算指定级别的目录/和文件。Comapred to du 计算所有文件而不管 --max-depth 参数,但只打印到指定的级别。它使树对我没有帮助。不过还是谢谢! (7认同)
  • 这是可行的,但是它不适用于限制所使用的递归量。例如。如果您使用“tree --du -h -L 2”,则这不起作用。 (4认同)
  • 我建议将 `-a` 选项添加到隐藏的输出位置(以点开头,例如 .cache) (2认同)

小智 10

添加已接受的答案......对于任意数量的文件夹,您可能会从该命令中获得巨大的输出。

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

tree --du -h | grep G]