这是一个快速教程,向您展示如何使用您可能已经熟悉的一些命令在 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 中查找大文件的指南吗? 我希望所有这些技巧都能教会你一些新的东西。
如果您喜欢本指南,请在社交媒体上分享。 如果您有任何意见或问题,请在下方留言。