如何在 Linux 命令行中查找最大的文件或文件夹

系统 Linux
在当前目录中查找前10个最大的文件和文件夹,接下来我们详细介绍一下。

工作中经常会有查看某个目录下最大的文件的需求。比如在运维工作中,发现某个系统或功能不工作了,经排查发现是服务器空间满了...那么接下来就需要清理一下临时文件或者日志文件,或者其他不需要的文件,那么就会想要查看一下,在某个目录下,到底哪个文件占用空间最大,也就是需要找出最大的文件(或目录)来。

一般来说,可以使用 du,sort 和 head 命令来完成这个工作。比如,在当前目录下查找前10个最大的文件夹,可参考如下命令:

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

再比如,在当前目录中查找前10个最大的文件和文件夹,参考如下命令:

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

接下来我们详细介绍一下。

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

du 命令用于获取磁盘使用情况,sort 命令用于根据需求对数据进行排序,head 命令用于显示输入数据的前面部分。

这只是在 Linux 命令行中获取最大文件和目录的一个命令组合,除此以外,也还有其他一些方法来实现相同的效果。

首先,假如在没有任何选项的情况下,使用这三个命令会发生什么呢?其输出对你来说可能没有什么实际用处。

当开始运行这些命令的时候,除非使用 du  指定,否则所有操作都是针对当前目录。

不带选项的使用 sort 命令,其结果往往会出人意料,比如,100 会被认为小于 12,因为它是按照各个数位上的字符排序的,第一位都是1,100的第二位为0,12的第二位为2,而2>0,所以12会排在100前面。

head 命令默认会显示前 10 个条目,根据你想要分析的目录,可修改其执行参数。

如下所示为不带任何选项的运行示例:​

$ 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

回到正题,下面我们看看如何使用合适的选项来达到我们的目的(找到最大的文件)。

sort 命令中,-n 选项表示将字段按照数值进行排序,-r 选项表示倒序排序,这通常是我们在使用 sort 命令时所希望的。

另外,在 head 中添加 -5 选项,表示查找前 5 个条目(而不是默认的10个),这根据你的具体需求和期望来决定。

然后,重新运行如下:​

$ du | sort -nr | head -5
1865396 .
1769532 ./Documents
76552 ./.cache
64852 ./.cache/mozilla
64848 ./.cache/mozilla/firefox

这个结果看起来好多了,哪个文件夹最大,一目了然。

du 命令的 -h 选项,可以让列表中文件大小以人类易读的方式显示,如下所示:​

$ 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

另外,sort 命令也有 -h 选项如下所示:

$ 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 文件夹中包含了一些较大的文件。但是我们切换到 Documents 文件夹中,再次运行上述命令,却看不到最大的文件,如下所示:​

$ du -h | sort -hr | head -5
1.7G .

这个结果表示,当前目录下 . 目录中含有1.7G的文件,但是对于我们找到最大的单个文件,却是没有帮助的。

这需要我们在 du 命令中使用另外一个选项,-a,如下所示:​

$ 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
责任编辑:庞桂玉 来源: TIAP
相关推荐

2023-02-07 09:49:26

Linux命令行合并文件

2022-10-14 19:30:29

Linux

2019-12-30 14:06:42

Windows 10文件夹Windows

2018-03-30 17:51:17

Linux命令查找文件

2014-02-12 10:58:05

Linux文件夹文件权限

2018-11-05 10:55:39

2022-11-02 08:20:43

Linux

2015-09-02 15:47:05

命令行fdupesLinux

2019-04-01 19:00:40

Linuxshell内置命令

2018-01-24 15:35:22

Linux隐藏文件管理器

2022-04-11 06:03:24

FdupesLinux命令行工具

2017-03-09 14:42:21

LinuxsFTP上传下载

2019-04-26 09:50:21

Linux压缩文件文件夹

2018-03-29 15:58:55

Linux命令行编辑器

2021-05-28 09:55:02

命令行加密文件Linux

2023-03-17 11:33:18

Linux

2019-07-15 05:50:19

Linux命令行VirtualBox版

2019-08-15 15:00:31

Linux命令行PDF

2015-12-16 16:01:13

2015-08-05 09:40:26

点赞
收藏

51CTO技术栈公众号