点击上面蓝字“关注我们”吧
在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或大目录的方法命令如何查找大文件
其实很多时候,你需要了解 指定系统目录 下有哪些大的数据文件,比如文件大小超过100M或1G(阀值视具体情况而定)。那么如何把这些大文件搜索出来呢?
1、搜索指定目录下超过指定大小的文件例如我要搜索 /var/log/ 下,超过500M大小的文件
[root@localhost ~]# find /var/log/ -type f -size +500M
/var/log/authlog如上命令所示,我们仅仅能看到超过500M大小的文件的文件名称,但是对文件的信息(例如,文件大小、文件属性)一无所知,那么能否更详细显示一些文件属性或信息呢,当然可以啦
2、搜索指定目录下超过指定大小的文件(显示文件用户、属组)
[root@localhost ~]# find /var/log/ -type f-size +500M -print0 | xargs -0 ls –l
-rw-------. 1 root root 5757841779 Jan 8 10:50 /var/log/authlog
3、搜索指定目录下超过指定大小的文件(显示文件详细size)当我们只需要查找超过500M大小文件,并显示查找出来文件的具体大小,可以使用下面命令
[root@localhost ~]# find /var/log/ -type f-size +500M -print0 | xargs -0 du –h
5491M /var/log/authlog
4、搜索指定目录下超过指定大小的文件(按大小排序,结果有出入)如果你还需要对查找结果按照文件大小做一个排序,那么可以使用下面命令
[root@localhost ~]# find / -type f -size +200M -print0 | xargs-0 du -h | sort -nr
206M /usr/lib/locale/locale-archive
5.4G /var/log/authlog
0 /proc/kcore
5、搜索指定目录下超过指定大小的文件(按大小排序,严格的)不过如上截图所示,有时候排列的顺序并不完全是按大小一致,这个是因为du命令的参数h所致,你可以统一使用使用MB来显示,这样就能解决这个问题
[root@localhost ~]# find / -type f -size +200M -print0 | xargs -0 du -h | sort-nr
0 /proc/kcore
206 /usr/lib/locale/locale-archive
5491 /var/log/authlog
6、搜索指定目录下超过指定大小的文件(详细显示文件的属主、属组、文件大小(M为单位))
[root@localhost ~]# find /var/log/ -type f-size +500M -print0 | xargs -0 ls -lh | sort -nr
-rw-------. 1 root root 5.4G Jan 8 11:05 /var/log/authlog
如何查找大目录
如何查找Linux下的大目录呢?
比如有时候磁盘空间告警了,而你平时又疏于管理、监控文件的增长,那么我需要快速的了解哪些目录变得比较大,那么此时我们可以借助du命令来帮我们解决这个问题
1、查找指定目录下的大目录
[root@localhost ~]# du -h /var/ --max-depth=1
58M /var/lib
133M /var/crash
6.6G /var/log
6.8G /var/
[root@localhost ~]# du -h /var/ --max-depth=2
22M /var/lib/rpm
28M /var/lib/selinux
58M /var/lib
133M /var/crash/127.0.0.1-2021.01.08-03:03:20
133M /var/crash
126M /var/log/deploy
80M /var/log/omm
3.9M /var/log/anaconda
18M /var/log/cloudagent
11M /var/log/ha
716M /var/log/oam
2.0M /var/log/dfv
17M /var/log/sa
35M /var/log/device-manager
36M /var/log/audit
16M /var/log/oam-console
6.6G /var/log
6.8G /var/
[root@localhost ~]# du -h /var/ --max-depth=3
8.0M /var/lib/dnf
22M /var/lib/rpm
28M /var/lib/selinux/targeted
28M /var/lib/selinux
58M /var/lib
133M /var/crash/127.0.0.1-2021.01.08-03:03:20
133M /var/crash
16M /var/log/deploy/action
13M /var/log/deploy/scripts
97M /var/log/deploy/bak
126M /var/log/deploy
80M /var/log/omm/oms
80M /var/log/omm
3.9M /var/log/anaconda
17M /var/log/cloudagent/lldp
18M /var/log/cloudagent
11M /var/log/ha/abc
11M /var/log/ha
493M /var/log/oam/oam-u
201M /var/log/oam/fsm
23M /var/log/oam/oam-e
717M /var/log/oam
1.9M /var/log/dfv/oam
2.0M /var/log/dfv
17M /var/log/sa
28M /var/log/device-manager/nginx
6.7M /var/log/device-manager/script
35M /var/log/device-manager
36M /var/log/audit
9.6M /var/log/oam-console/gunicorn
16M /var/log/oam-console
6.6G /var/log
6.8G /var/
2、如果你想知道/var目录下面又双有哪些大文件夹?
那么可以将参数max-depth=3(扩展3层目录释义),如果你想对搜索出来的结果进行排序,那么可以借助于sort命令。如下所示[root@localhost ~]# du -h /var --max-depth=3|sort -n
1.9M /var/log/dfv/oam
2.0M /var/log/dfv
3.9M /var/log/anaconda
6.6G /var/log
6.7M /var/log/device-manager/script
6.8G /var
8.0M /var/lib/dnf
9.6M /var/log/oam-console/gunicorn
11M /var/log/ha
11M /var/log/ha/abc
13M /var/log/deploy/scripts
16M /var/log/deploy/action
16M /var/log/oam-console
17M /var/log/cloudagent/lldp
17M /var/log/sa
18M /var/log/cloudagent
22M /var/lib/rpm
23M /var/log/oam/oam-e
28M /var/lib/selinux
28M /var/lib/selinux/targeted
28M /var/log/device-manager/nginx
35M /var/log/device-manager
36M /var/log/audit
58M /var/lib
80M /var/log/omm
80M /var/log/omm/oms
97M /var/log/deploy/bak
126M /var/log/deploy
133M /var/crash
133M /var/crash/127.0.0.1-2021.01.08-03:03:20
201M /var/log/oam/fsm
494M /var/log/oam/oam-u
717M /var/log/oam
3、有时候搜索出来的结果太多了(比如,我上面写的),一直在刷屏,如果我只想查出最大的5个文件夹,怎么办呢?此时就要借助head命令来显示了[root@localhost ~]# du -hm /var/log/--max-depth=2 | sort -nr | head -5
6677 /var/log/
717 /var/log/oam
494 /var/log/oam/oam-u
201 /var/log/oam/fsm
126 /var/log/deploy
END
喜欢我就点赞吧