在 Linux 命令行中查找最大的文件和文件夹

这是一个快速教程,向您展示如何使用您可能已经熟悉的一些命令在 Linux 机器上查找最大的文件 du、sort 和 head。

这是一个快速的总结:

查找当前目录中最大的 10 个文件夹:

du -h | sort -hr | head -n 10

要查找当前目录中最大的 10 个文件和文件夹:

du -ah | sort -hr | head -n 10

阅读本文的其余部分以获取这些命令的详细说明。

如何在 Linux 中找到最大的文件夹?

du 命令用于获取磁盘使用情况。 排序命令根据您的要求对数据进行排序。 head 命令显示文本输入源的顶部行。

这只是在 Linux 命令行中获取最大文件和目录的一种组合。 可以有几种其他方法来实现相同的结果。

如果你在没有选项的情况下一起运行这三个命令会发生什么? 您的输出可能不会很有用。

当您运行这些命令时,除非使用 du 指定,否则一切都将使用当前工作目录作为源文件自动运行。

不带选项的排序按数字顺序排列项目,但这种行为有点奇怪。 100 被认为小于 12,因为 2 > 0。这绝对不是我们想要的。

Head here 默认显示前 10 个项目。 根据您要分析的目录,您可以对其进行调整以快速查找大文件。

[email protected]:~$ du | sort | head
100    ./.local/share/evolution/addressbook
108    ./.mozilla/firefox/jwqwiz97.default-release/datareporting
112    ./.local/share/gvfs-metadata
12    ./.cache/fontconfig
12    ./.cache/gnome-software/screenshots/112x63
12    ./.cache/thumbnails/fail
12    ./.config/dconf
12    ./.config/evolution
12    ./.config/gnome-control-center/backgrounds
12    ./.config/ibus

添加选项

因此,让我们看看哪些可能是更典型的选择。

添加 -n to sort 命令表示项目将按数值排序。 添加 -r 意味着结果将被逆转。 这就是我们在搜索最大数时想要的。

我也要补充 -5 进一步限制我们的结果,而不是 head 的默认值。 这个值是你应该根据你对系统的了解来决定的。

您可能希望将该值扩展为大于 10 的数字,或者如果您要过滤的大文件很多,则完全忽略它。 否则,您可能会运行它,删除多个文件,但仍然存在空间问题。

好吧,让我们把它们放在一起,看看会发生什么。

[email protected]:~$ du | sort -nr | head -5
1865396    .
1769532    ./Documents
76552    ./.cache
64852    ./.cache/mozilla
64848    ./.cache/mozilla/firefox

这样更好,您可以快速查看最大文件的位置。 不过,你可以做得更好。 让我们用更多选项来清理它。

人类可读的输出

某些命令的人工选项有助于以我们熟悉的方式呈现数字。 让我们尝试将其添加到 du 命令中。

[email protected]:~$ du -h | sort -nr | head -5
980K    ./.local/share/app-info
976K    ./.local/share/app-info/xmls
824K    ./.cache/thumbnails
808K    ./.cache/thumbnails/large
804K    ./.local/share/tracker

更正的人类可读输出

等一下……这些数字没有任何意义。 不,他们没有,因为您只将内容更改为 du 命令的人类可读内容。 Sort 有自己的内置函数,用于使用 -h 进行人类可读的数字排序。 两者都必须用于获得所需的输出。 在 Linux 中,您经常会遇到这类问题。

在以特定方式使用命令之前,进行实验并确保您的结果“有意义”非常重要。

让我们再试一次。

[email protected]:~$ du -h | sort -hr | head -5
1.8G    .
1.7G    ./Documents
75M    ./.cache
64M    ./.cache/mozilla/firefox/jwqwiz97.default-release
64M    ./.cache/mozilla/firefox

这还差不多。

最大的文件在哪里?

您可以从输出中看出 Documents 文件夹包含一些较大的文件,但是如果您切换到该文件夹​​并再次运行我们的命令,则不会得到最大的文件。 你得到这个:

[email protected]:~/Documents$ du -h | sort -hr | head -5
1.7G    .

这只是告诉我们你已经知道的。 当前目录,简称 .,有1.7G的文件。 如果您要查找单个、异常大的文件,这将无济于事。

为此任务,您需要向 du 添加另一个标志。 使用选项 -a,您可以获得我们正在寻找的输出。 让我们试试看。

[email protected]:~/Documents$ du -ah | sort -hr | head -5
1.7G    .
1.1G    ./1gig-file.file
699M    ./doc.tar
2.9M    ./photo-of-woman-wearing-turtleneck-top-2777898.jpg
1.4M    ./semi-opened-laptop-computer-turned-on-on-table-2047905.jpg

结论

你喜欢这个在 Linux 中查找大文件的指南吗? 我希望所有这些技巧都能教会你一些新的东西。

如果您喜欢本指南,请在社交媒体上分享。 如果您有任何意见或问题,请在下方留言。