在 Slackware 上查找大型文件夹和文件

在 Slackware 上查找大型文件夹和文件

我正在尝试释放一些 Slackware 服务器上的磁盘空间。显然 72 GB 中的 69 GB 已被占用,所以我需要再释放一些空间。

我搜索了一下,发现下面可以搜索大文件和文件夹,但是需要很长时间:

du -a /var | sort -n -r | head -n 10

所以我需要一些关于如何找到大文件和文件夹的帮助。

答案1

您无法避免查看文件系统以查找大文件。也许只需将该命令设置为在后台运行,可能重定向到文件,然后执行其他操作即可。

您可以稍微优化一下该命令。事实上,整个 du 过程必须运行后,排序后才会输出任何输出。您可以这样做:

sort -max /var | grep '^[0-9][0-9][0-9]' > ~/disk_usage_report

现在,您只记录大小至少为 100 MB 的目录和文件,并且不对其进行排序。我还使用了这种方法,-x以防万一您安装了其他文件系统/var(部分是出于习惯)。您可以随时查看该文件的内容,因为它们会累积起来,您可以在查看时对其中的条目进行排序:

sort -rn ~/disk_usage_report | head -n 10

在某些系统上,我会使用 cron 作业定期收集此类磁盘使用情况信息,主要是为了比较报告以了解随时间推移哪些内容在增长,但这也意味着我在需要时可以在短时间内获得一份相当最新的报告。例如,像这样的 cron 作业:

19 3 * * * root du -max / > /var/log/disk_usage-date -Im

答案2

扫描文件是不可避免的,没有其他方法。根据您的磁盘速度,这个时间会变慢或变快。您可以尝试以下一些有用的命令:

find /somedir -type f -size +10M

这将显示所有大小大于(+ 号)10M 的文件。您只能将其用于文件,因为目录的大小实际上是目录的元数据(文件列表),而不是其中文件的大小。

使用 find 还可以找到旧文件,这些文件可能是你很久以前忘记的,例如

find /somedir -mtime +30

这将显示过去 30 天内未修改的文件、链接、目录。您还可以像这样组合时间 + 大小:

find /somedir -type f -mtime +30 -size +100M

将显示所有大于 100MiB 并且超过 30 天未修改的文件

对于目录使用:

du -h -d1 /somedir

-h 表示人类可读(千兆千兆兆等等) -d1 - 仅显示第一级目录,默认情况下 du 将递归扫描所有内容,这在我们的例子中不是很有用。

如果要排序,请省略 -h 并添加 '|sort -n -k1'

或者你也可以这样做:

du -sh *

在您感兴趣的目录中

答案3

我只需要安装https://dev.yorhel.nl/ncdu避免使用任何控制台巫术

相关内容