我正在寻找一个脚本/程序,它将显示前x 个最大的目录/文件,然后进入这些文件夹并显示x 个最大的目录/文件以获得可配置的深度。
231MB bin
- 220MB ls
- 190MB dir
- 15MB def
- 3MB lpr
- 10MB asd
- 1MB link
我怎样才能做到这一点?
我正在寻找一个脚本/程序,它将显示前x 个最大的目录/文件,然后进入这些文件夹并显示x 个最大的目录/文件以获得可配置的深度。
231MB bin
- 220MB ls
- 190MB dir
- 15MB def
- 3MB lpr
- 10MB asd
- 1MB link
我怎样才能做到这一点?
您可以看到 10 个最大的目录:
这将递归地累加每个目录中所有内容的大小 - 但您必须在每个级别手动执行它才能获得每个目录中的内容的细分
您的系统可能已安装或可通过您的包管理器使用其中之一:
图形:
基于文本:
它们可能无法完全按照您指定的方式工作,但它们应该可以满足您的大部分需求。
我对布伦特答案的看法是:
这将为您提供树中最大的目录或文件。
你可以使用 find 做一些类似的事情:
但这不会按大小排序,并且会非常缓慢且效率低下。最好编写一个解析 du -a 的脚本。
(想将此作为评论添加到布伦特的答案,但没有看到这样做的链接)我最近遇到了类似的问题,如果您只需要检查一个有问题的分区,在布伦特的答案中添加 -x 非常有用,特别是如果某些目录有自己的分区。
所以它会是:
这将为您提供整个目录树中前 10 个最大文件/文件夹的排序后的人类可读大小:
例子
我会简短地看一下 sort 的联机帮助页 - 在某些系统上,您可以使用它
sort -h
来对人类可读的输出进行排序。我在 CentOS 6.2 和 sort 8.4 上使用过这个。否则,您可以将输出重定向du -h
到文件并使用以下内容对其进行排序:我不知道执行此操作的命令行工具(除了其他答案所建议的),但如果您能够在这台机器上运行 GUI 程序,请尝试KDirStat。它显示特定根目录下所有文件和目录的磁盘使用情况,按大小排序(默认情况下)。