用于查找最大文件/目录的Linux实用程序

用于查找最大文件/目录的Linux实用程序

我正在寻找一个程序来向我显示哪些文件/目录占用了最多的空间,例如:

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 中,又名磁盘使用情况分析器:

在此处输入图片描述

相关内容