如何找到最大的目录或最大的文件?

Eri*_*c V 52 linux bash filesystems

在 Linux 下,我正在寻找一个命令来列出目录下最大的文件和/或最大的目录。

小智 58

一个名为的实用程序ncdu将为您提供您正在寻找的信息。

sudo apt-get install ncdu
Run Code Online (Sandbox Code Playgroud)

在 OS X 上,它可以使用 Homebrew 安装:

brew install ncdu
Run Code Online (Sandbox Code Playgroud)

  • +1 我以前从未听说过这个 - 在 Mac 上也能很好地工作。 (2认同)
  • 这是令人兴奋的。建议将此优先于所有其他答案! (2认同)

Mar*_*cin 34

以下命令显示一级目录及其大小

du --max-depth=1 /path | sort -r -k1,1n
Run Code Online (Sandbox Code Playgroud)

如果其中一个确实突出(由于 ,列表中的最后一个是最大的sort -r),那么您在该目录上重新运行该命令,并继续运行,直到找到有问题的目录/文件。

如果你想要的只是十个最大的文件就做

find /home -type f -exec du -s {} \; | sort -r -k1,1n | head
Run Code Online (Sandbox Code Playgroud)

  • 使用`sort`(Ubuntu 12.04.3中的`sort(GNU coreutils)8.13`),如果`-n`紧跟`-k`(`-k1,1n`),则选项`-r`不起作用. 此选项顺序有效:`sort -rnk1,1`。 (2认同)

小智 24

从任何目录:

du -a | sort -n -r

  • 这显示了单个文件,但问题也与目录有关 (2认同)
  • 空间不足时无法运行排序:=( (2认同)

小智 6

以下命令将返回给定的前 10 个最大文件 /path

du -a -h /path | 排序 -h -r | 头-n 10

我喜欢使用-h选项来提高可读性。双方dusort需要有-h