在 Linux 命令行中查找最大的文件和文件夹
这是一个快速教程,向您展示如何使用您可能已经熟悉的 du、sort 和 head 命令查找 Linux 机器上最大的文件。
以下是简要摘要:
查找当前目录中最大的 10 个文件夹:
du -h | sort -hr | head -n 10
查找当前目录中最大的 10 个文件和文件夹:
du -ah | sort -hr | head -n 10
阅读文章的其余部分以获得这些命令的详细解释。
如何找到 Linux 中最大的文件夹?
du 命令用于获取磁盘使用情况。Sort命令根据您的要求对数据进行排序。head命令显示文本输入源的顶行。
这只是在 Linux 命令行中获取最大文件和目录的一种组合。还有其他几种方法可以实现相同的结果。
如果您不带任何选项同时运行这三个命令,会发生什么情况?您的输出可能不会很有用。
当您运行这些命令时,除非使用 du 指定,否则所有内容都将使用当前工作目录作为源文件自动运行。
没有选项的排序会按数字顺序排列项目,但是这种行为有点奇怪。100 被认为小于 12,因为 2 > 0。这绝对不是我们想要的。
此处的 Head 默认显示前 10 个项目。根据要分析的目录,您可以调整此设置以快速找到大文件。
christopher@linux:~$ 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
到排序命令意味着项目将按数值排序。添加-r
意味着结果将被反转。这就是我们在搜索最大数字时想要的。
我还将添加一些内容,-5
以进一步限制我们的结果,使其超出 head 的默认值。您应该根据对系统的了解来决定此值。
您可能需要将值扩大到大于 10 的数字,或者如果您尝试过滤许多大文件,则完全忽略它。否则,您可能会运行它,删除几个文件,但仍然有空间问题。
好的,让我们把它们放在一起看看会发生什么。
christopher@linux:~$ du | sort -nr | head -5
1865396 .
1769532 ./Documents
76552 ./.cache
64852 ./.cache/mozilla
64848 ./.cache/mozilla/firefox
这样就好了,你可以快速看到最大的文件在哪里。不过,你还可以做得更好。让我们用更多的选项来清理一下。
人类可读的输出
某些命令的人性化选项有助于以我们熟悉的方式显示数字。让我们尝试将其添加到 du 命令中。
christopher@linux:~$ 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 中,您经常会遇到此类问题。
在以特定方式使用命令之前,进行实验并确保结果“有意义”非常重要。
我们再试一次。
christopher@linux:~$ 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 文件夹包含一些较大的文件,但是如果您切换到该文件夹并再次运行我们的命令,您将无法获得最大的文件。您将获得以下内容:
christopher@linux:~/Documents$ du -h | sort -hr | head -5
1.7G .
这只是告诉我们您已经知道的事情。当前目录(称为).
包含 1.7G 的文件。如果您要查找单个异常大的文件,这没什么用。
您需要为 du 添加另一个标志来完成此任务。使用选项 -a,您可以获得我们正在寻找的输出。让我们尝试一下。
christopher@linux:~/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-277789ucaifslkcfuvmosolwdslgivbjdulius.jpg
1.4M ./semi-opened-laptop-computer-turned-on-on-table-204790mbhcybkrcxfngliawfrvntmnmfgbjntd.jpg
结论
你喜欢这份在 Linux 中查找大文件的指南吗?我希望所有这些技巧都能让你学到一些新东西。
如果您喜欢本指南,请在社交媒体上分享。如果您有任何意见或问题,请在下面留言。