您的位置:首页 > 运维架构 > Linux

linux: 找到磁盘/目录中最大的n个文件

2017-08-27 23:08 435 查看
linux: 找到磁盘/目录中最大的n个文件

du加上了-a选项,可以看到所有的目录和文件大小,按照大小排序,就可以得到最大的n个文件了:

下面的例子中du的-k选项表示文件大小显示为KB,之后按照大小排序,显示前n行:

root@db2a:~# du -ak /tmp | sort -nrk 1 | head -n 10

275210 /tmp

53060 /tmp/test2

49940 /tmp/z

34424 /tmp/test

31312 /tmp/dir2

18636 /tmp/test/dir2.tar.gz

18636 /tmp/test2/dir2.tar.gz.bak

18636 /tmp/test2/dir2.tar.gz

18636 /tmp/dir2.tar.gz.bak

18636 /tmp/dir2.tar.gz

上面的命令不但显示文件,而且显示目录,如果不想显示目录,可以先用find命令找出所有的文件,再执行上面的命令:

root@db2a:~# find /tmp -type f -exec du -k '{}' \; | sort -nrk 1 | head -n 10

49940 /tmp/z

18636 /tmp/test/dir2.tar.gz

18636 /tmp/test2/dir2.tar.gz.bak

18636 /tmp/test2/dir2.tar.gz

18636 /tmp/dir2.tar.gz.bak

18636 /tmp/dir2.tar.gz

18472 /tmp/mongo.tar

15780 /tmp/test/mongodb.rpm

15780 /tmp/test2/mongodb.rpm

15780 /tmp/mongodb.rpm

下面的命令可以实现类似的效果:

root@db2a:~# find /tmp -type f -exec ls -l '{}' \; | awk '{print $5,$NF}' | sort -nrk 1 | head -n 10

51138560 /tmp/z

19080487 /tmp/test/dir2.tar.gz

19080487 /tmp/test2/dir2.tar.gz.bak

19080487 /tmp/test2/dir2.tar.gz

19080487 /tmp/dir2.tar.gz.bak

19080487 /tmp/dir2.tar.gz

18913280 /tmp/mongo.tar

16157459 /tmp/test/mongodb.rpm

16157459 /tmp/test2/mongodb.rpm

16157459 /tmp/mongodb.rpm

上面的命令查找的都是目录及子目录下的文件,如果不找子目录,那就简单了,因为ls有个选项,可以按照文件大小排序
root@db2a:~# ls -lhS /tmp | head -n 11

root@db2a:~# ls -lhS /tmp | head -n 11
total 153M
-rw-r--r-- 1 root root 49M Aug 21 17:08 z
-rw-r--r-- 1 root root 19M Aug 21 17:12 dir2.tar.gz
-rw-r--r-- 1 root root 19M Aug 21 19:27 dir2.tar.gz.bak
-rw-r--r-- 1 root root 19M Aug 21 17:00 mongo.tar
-rw-r--r-- 1 root root 16M Aug 21 16:39 mongodb.rpm
-rw-r--r-- 1 qingsong qingsong 13M Aug 20 18:38 latch.out
-rw-rw-r-- 1 qingsong qingsong 5.0M Aug 25 15:35 mongo.taraa
-rw-rw-r-- 1 qingsong qingsong 5.0M Aug 25 15:35 mongo.tarab
-rw-rw-r-- 1 qingsong qingsong 5.0M Aug 25 15:35 mongo.tarac
-rw-rw-r-- 1 qingsong qingsong 3.1M Aug 25 15:35 mongo.tarad
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐