我正在寻找一个程序来向我显示哪些文件/目录占用了最多的空间,例如:
74% music
\- 60% music1
\- 14% music2
12% code
13% other
我知道在 KDE3 中这是可能的,但我宁愿不这么做 — — 我更喜欢 KDE4 或命令行。
答案1
查找最大的 10 个文件(linux/bash):
find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
查找最大的 10 个目录:
find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
唯一的区别是-type {d:f}
。
处理名称中带有空格的文件,并在输出中生成人类可读的文件大小。最大的文件列在最后。tail 的参数是您看到的结果数(这里是 10 个最大的结果)。
有两种技术可用于处理文件名中的空格。第一种find -print0 | xargs -0
是使用空分隔符代替空格,第二种xargs -I{}
是使用换行符代替空格来终止输入项。
例子:
$ find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
76M ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz
76M ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
76M ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
76M ./tmp/projects/onthisday/onthisday.tar.gz
114M ./Dropbox/snapshots/weekly.tgz
114M ./Dropbox/snapshots/daily.tgz
114M ./Dropbox/snapshots/monthly.tgz
117M ./Calibre Library/Robert Martin/cc.mobi
159M ./.local/share/Trash/files/funky chicken.mpg
346M ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi
答案2
我总是使用ncdu
。它具有交互性并且速度非常快。
答案3
快速查看:
du | sort -n
列出所有目录,其中最大的为最后一个。
du --max-depth=1 * | sort -n
或者,再次避免使用多余的 * :
du --max-depth=1 | sort -n
列出当前目录中的所有目录,其中最大的目录排在最后。
(需要使用 -n 参数进行排序,以便将第一个字段排序为数字而不是文本,但这排除了使用 -h 参数进行排序,因为我们需要一个有效的数字进行排序)
如果您想要跟踪符号链接(默认不跟踪符号链接)或者仅显示目录内容(不包括子目录)的大小,则可以使用 du 的其他参数。du 甚至可以在列表中包含目录中任何文件最后更改的日期和时间。
答案4
Filelight 对于 KDE 用户来说更好,但为了完整性(问题标题是一般性的),我必须提一下猴面包树包含在 Ubuntu 中,又名磁盘使用情况分析器: