如何获取目录及其子目录的汇总大小?

如何获取目录及其子目录的汇总大小?

假设我想获取 Linux 文件系统中每个目录的大小。使用时ls -la我并没有真正得到文件夹的汇总大小。

如果我使用,df我会得到每个已安装文件系统的大小,但这也帮不上忙。而使用,du我会得到每个子目录的大小和整个文件系统的摘要。

但我只想获取文件系统 ROOT 文件夹内每个目录的汇总大小。有没有什么命令可以实现这一点?

答案1

这就是你想要的:

du -sh /*

这意味着:

  • -s仅给出每个命令行参数的总数。
  • -h用于人类可读的后缀,如M兆字节和G千兆字节(可选)。
  • /*只是扩展到中的所有目录(和文件)/

    注意:不包括点文件;运行shopt -s dotglob以也包括这些。

按大小排序也很有用:

du -sh /* | sort -h

这里:

  • -h确保sort正确解释人类可读的后缀。

答案2

我经常需要找到最大的目录,因此为了获得包含 20 个最大目录的排序列表,我这样做:

du -m /some/path | sort -nr | head -n 20

在这种情况下,大小将以兆字节为单位报告。

答案3

我喜欢用奈德为此,您可以使用光标导航并深入浏览目录结构,它运行得非常好。

答案4

以下du调用应该可以在 BSD 系统上运行:

du -d 1 /

相关内容