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

35 篇文章 0 订阅
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


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值