Linux如何查找大文件或目录总结

简介:

1: 如何查找大文件?

搜索当前目录下,超过100M大小的文件:

1
2
3
4
5
6
7
8
9
10
[root@getlnx01 u03]# find . -type f -size +100M
 
./usr/local/jdk-7u67-linux-x64.tar.gz
./data/log/charge-service/test-access.log. 2016 - 08 - 08 .log
./data/log/aaa_service/test-access.log. 2016 - 08 - 09 .log
./home/deploy/logs/testmqlogs/otherdays/testmq_client. 1 .log
./home/deploy/logs/testmqlogs/otherdays/testmq_client. 2 .log
./opt/backend/charge-service/ 1.2 /shared/console.log
./opt/backend/express_service/ 0.0 . 3 .tar.gz
./opt/backend/aaa-service/ 1.2 /shared/console.log

更详细显示一些文件属性或信息:

1
2
3
4
5
6
7
8
9
10
11
[root@getlnx01 u03]# find . -type f -size +100M  -print0 | xargs - 0  ls -l
 
-rw-rw-r--  1  deploy deploy  542795006  8 月   30  15 : 14  ./data/log/charge-service/test-access.log. 2016 - 08 - 08 .log
-rw-rw-r--  1  deploy deploy  225658142  8 月   25  16 : 28  ./data/log/aaa_service/test-access.log. 2016 - 08 - 09 .log
-rw-rw-r--  1  deploy deploy  253623621  8 月   30  15 : 15  ./home/deploy/logs/testmqlogs/otherdays/testmq_client. 1 .log
-rw-rw-r--  1  deploy deploy  373547598  8 月   25  16 : 28  ./home/deploy/logs/testmqlogs/otherdays/testmq_client. 2 .log
-rw-rw-r--  1  deploy deploy  645631934  8 月   30  15 : 15  ./opt/backend/charge-service/ 1.2 /shared/console.log
-rw-rw-r--  1  deploy deploy  209314900  8 月   30  15 : 15  ./opt/backend/aaa-service/ 1.2 /shared/console.log
-rw-r--r--  1  root   root    315334884  12 月  21  2015  ./opt/backend/express_service/ 0.0 . 3 .tar.gz
-rw-r--r--  1  root   root    142376665  6 月   11  2015  ./usr/local/jdk-7u67-linux-x64.tar.gz
-rw-rw-r--  1  deploy deploy  105085974  8 月   30  15 : 15  ./usr/local/push-tomcat/logs/push/info.log6829699375703641.tmp

当我们只需要查找超过100M大小文件,并显示查找出来文件的具体大小,并排序(下)

1
2
3
4
5
6
7
8
9
10
[root@getlnx01 u03]# find . -type f -size +100M  -print0 | xargs - 0  du -h
102M     ./usr/local/push-tomcat/logs/push/info.log6829699375703641.tmp
136M     ./usr/local/jdk-7u67-linux-x64.tar.gz
518M     ./data/log/charge-service/test-access.log. 2016 - 08 - 08 .log
216M     ./data/log/aaa_service/test-access.log. 2016 - 08 - 09 .log
242M     ./home/deploy/logs/testmqlogs/otherdays/testmq_client. 1 .log
357M     ./home/deploy/logs/testmqlogs/otherdays/testmq_client. 2 .log
616M     ./opt/backend/charge-service/ 1.2 /shared/console.log
301M     ./opt/backend/express_service/ 0.0 . 3 .tar.gz
201M     ./opt/backend/aaa-service/ 1.2 /shared/console.log
1
2
3
4
5
6
7
8
9
[root@getlnx01 u03]# find . -type f -size +100M  -print0 | xargs - 0  du -h | sort -nr
 
616M     ./opt/backend/charge-service/ 1.2 /shared/console.log
518M     ./data/log/charge-service/test-access.log. 2016 - 08 - 08 .log
357M     ./home/deploy/logs/testmqlogs/otherdays/testmq_client. 2 .log
301M     ./opt/backend/express_service/ 0.0 . 3 .tar.gz
243M     ./home/deploy/logs/testmqlogs/otherdays/testmq_client. 1 .log
216M     ./data/log/aaa_service/test-access.log. 2016 - 08 - 09 .log
201M     ./opt/backend/aaa-service/ 1.2 /shared/console.log

不过如上截图所示,有时候排列的顺序并不完全是按大小一致,这个是因为du命令的参数h所致,你可以统一使用使用MB来显示,这样就能解决这个问题。到这里,这个在Linux系统查找大文件的命令已经非常完美了,当然如果你还有很多的需求,那么可以在这个命令上做修改、调整.

 

2: 如何查找Linux下的大目录

譬如有时候磁盘空间告警了,而你平时又疏于管理、监控文件的增长,那么我需要快速的了解哪些目录变得比较大,那么此时我们可以借助du命令来帮我们解决这个问题。

1
2
3
4
5
6
7
[root@getlnx01 u03]# du -h --max-depth= 1
16K     ./lost+found
33G     ./flash_recovery_area
37G     ./oradata
70G     .
 
如果你想知道flash_recovery_area目录下面有哪些大文件夹,那么可以将参数max-depth= 2  ,如果你想对搜索出来的结果进行排序,那么可以借助于sort命令。如下所示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@getlnx01 u03]# du -h --max-depth= 2  | sort -n
3 .5G    ./flash_recovery_area/EPPS
16K     ./lost+found
29G     ./flash_recovery_area/backup
33G     ./flash_recovery_area
37G     ./oradata
37G     ./oradata/epps
70G     .
[root@getlnx01 u03]# du -hm --max-depth= 2  | sort -n
1        ./lost+found
3527     ./flash_recovery_area/EPPS
29544    ./flash_recovery_area/backup
33070    ./flash_recovery_area
37705    ./oradata
37705    ./oradata/epps
70775    .

有时候搜索出来的结果太多了(譬如,我从根目录开始搜索),一直在刷屏,如果我只想查出最大的12个文件夹,怎么办呢?此时就要借助head命令来显示了

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@getlnx01 /]# du -hm --max-depth= 2  | sort -nr | head - 12
407480   .
167880   ./u04
158685   ./u02/oradata
158685   ./u02
152118   ./u04/oradata
70775    ./u03
37705    ./u03/oradata
33070    ./u03/flash_recovery_area
5995     ./u01/app
5995     ./u01
3551     ./usr
1558     ./usr/share

参考资料:

http://linuxandfriends.com/how-to-find-large-files-in-linux-using-command-line/

http://www.docin.com/p-563963500.html

本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1844338如需转载请自行联系原作者


qianghong000

相关文章
|
17天前
|
人工智能 安全 Linux
【Linux】Linux之间如何互传文件(详细讲解)
【Linux】Linux之间如何互传文件(详细讲解)
|
1天前
|
安全 Linux 开发工具
Linux中可引起文件时间戳改变的相关命令
【4月更文挑战第12天】Linux中可引起文件时间戳改变的相关命令
9 0
|
3天前
|
Linux Shell 开发工具
Linux文件常用操作
Linux文件常用操作(几乎覆盖所有日常使用)
58 0
|
4天前
|
Linux 内存技术 Perl
【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件
【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件
|
10天前
|
Linux
linux 超过4个G的文件传不上去的解决办法
linux 超过4个G的文件传不上去的解决办法
9 0
|
10天前
|
Linux 索引
linux 文件查找 和文件管理常用命令
linux 文件查找 和文件管理常用命令
19 0
|
12天前
|
Linux 开发者
Linux文件编程(open read write close函数)
通过这些函数,开发者可以在Linux环境下进行文件的读取、写入和管理。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
84 4
|
12天前
|
监控 Linux
|
15天前
|
Ubuntu Linux 编译器
Linux通过/proc/version文件
`/proc/version`文件在Linux系统中提供当前内核版本详情,属于伪文件系统 `/proc`,展示内核、硬件和进程信息。通过`cat /proc/version`可查看,如`Linux version 5.4.0-80-generic...`,显示内核版本、编译日期等。但此文件不包含发行版信息,查询发行版详情可查看`/etc/os-release`或用`lsb_release`命令。
23 6
|
16天前
|
Ubuntu Linux Apache
linux下apache2更换目录
linux下apache2更换目录