linux按大小显示当前文件,linux下按文件大小排序

日常维护中经常遇到磁盘空间告警的问题需要查看具体是那一个或多个文件占用的空间过大,再根据具体情况决定是否需要转移或删除。当然该问题可以通过find指令找出所有超出某大小的所有文件。除了find ,我们还可以使用ls、sort等常用命令快速便捷的确认具体是哪些文件占用光了磁盘。

一、ls查看占用最大的文件

1、S(大写)命令可以按文件从大到小排列(以byte为单位显示的)

# ls -lS

total 32772

-rw-r--r-- 1 root root 18877051 Dec 6 20:32 cms.sql

-rw-r--r-- 1 root root 7558809 Dec 25 22:21 blog91it.sql

-rw-r--r-- 1 root root 5053697 Dec 6 20:32 cms.tar.gz

-rw-r--r-- 1 root root 1977747 Dec 25 22:21 blog91it.tar.gz

-rw-r--r-- 1 root root 23276 Dec 1 00:33 a.py

-rw-r--r-- 1 root root 12049 Dec 18 23:09 spir.tar.gz

-rw-r--r-- 1 root root 7497 Nov 5 01:23 new.py

-rw-r--r-- 1 root root 5326 Dec 21 19:25 segment.tar.gz

drwxr-xr-x 4 root root 4096 Dec 19 00:38 py

drwxr-xr-x 2 root root 4096 Nov 22 23:30 qiniu

drwxr-xr-x 2 root root 4096 Dec 21 19:24 segment

-rw-r--r-- 1 root root 1372 Jan 5 21:04 pid.py

-rw-r--r-- 1 root root 499 Jan 7 21:51 cm.sh

-rw-r--r-- 1 root root 285 Jan 5 21:29 vms.py

-rw-r--r-- 1 root root 261 Jan 6 00:12 grep.py

-rwxr-xr-x 1 root root 113 Jan 5 23:23 vmrss.sh

2、加上r参数可以反向排序(由小到大)

# ls -lSr

total 32772

-rwxr-xr-x 1 root root 113 Jan 5 23:23 vmrss.sh

-rw-r--r-- 1 root root 261 Jan 6 00:12 grep.py

-rw-r--r-- 1 root root 285 Jan 5 21:29 vms.py

-rw-r--r-- 1 root root 499 Jan 7 21:51 cm.sh

-rw-r--r-- 1 root root 1372 Jan 5 21:04 pid.py

drwxr-xr-x 2 root root 4096 Dec 21 19:24 segment

drwxr-xr-x 2 root root 4096 Nov 22 23:30 qiniu

drwxr-xr-x 4 root root 4096 Dec 19 00:38 py

-rw-r--r-- 1 root root 5326 Dec 21 19:25 segment.tar.gz

-rw-r--r-- 1 root root 7497 Nov 5 01:23 new.py

-rw-r--r-- 1 root root 12049 Dec 18 23:09 spir.tar.gz

-rw-r--r-- 1 root root 23276 Dec 1 00:33 a.py

-rw-r--r-- 1 root root 1977747 Dec 25 22:21 blog91it.tar.gz

-rw-r--r-- 1 root root 5053697 Dec 6 20:32 cms.tar.gz

-rw-r--r-- 1 root root 7558809 Dec 25 22:21 blog91it.sql

-rw-r--r-- 1 root root 18877051 Dec 6 20:32 cms.sql

3、加上h参数以更友好的方式显示

# ls -lhS

total 33M

-rw-r--r-- 1 root root 19M Dec 6 20:32 cms.sql

-rw-r--r-- 1 root root 7.3M Dec 25 22:21 blog91it.sql

-rw-r--r-- 1 root root 4.9M Dec 6 20:32 cms.tar.gz

-rw-r--r-- 1 root root 1.9M Dec 25 22:21 blog91it.tar.gz

-rw-r--r-- 1 root root 23K Dec 1 00:33 a.py

-rw-r--r-- 1 root root 12K Dec 18 23:09 spir.tar.gz

-rw-r--r-- 1 root root 7.4K Nov 5 01:23 new.py

-rw-r--r-- 1 root root 5.3K Dec 21 19:25 segment.tar.gz

drwxr-xr-x 4 root root 4.0K Dec 19 00:38 py

drwxr-xr-x 2 root root 4.0K Nov 22 23:30 qiniu

drwxr-xr-x 2 root root 4.0K Dec 21 19:24 segment

-rw-r--r-- 1 root root 1.4K Jan 5 21:04 pid.py

-rw-r--r-- 1 root root 499 Jan 7 21:51 cm.sh

-rw-r--r-- 1 root root 285 Jan 5 21:29 vms.py

-rw-r--r-- 1 root root 261 Jan 6 00:12 grep.py

-rwxr-xr-x 1 root root 113 Jan 5 23:23 vmrss.sh

不过上面的排序,如果仔细观察的话会发现一个问题,就是所有目录显示的大小都是4K (linux默认pagesize的大小 )。如果我们想将目录也算上就要使用du配合sort进行排序了。

二、du和sort排序

1、sort的-h参数

#当du不加-sh参数时py目录未当做一个整体进行排序,而是将其下的目录也进行了排序

# du * |sort -h

4 cm.sh

4 grep.py

4 pid.py

4 vmrss.sh

4 vms.py

8 new.py

8 segment.tar.gz

12 spir.tar.gz

24 a.py

28 segment

60 py/moudle

68 py/python/pycurl

84 py/python

184 py

1932 blog91it.tar.gz

4936 cms.tar.gz

7384 blog91it.sql

18436 cms.sql

43412 qiniu

#加上参数后,可以看到目录都被当做一个整体处理了

# du * -sh|sort -h

4.0K cm.sh

4.0K grep.py

4.0K pid.py

4.0K vmrss.sh

4.0K vms.py

8.0K new.py

8.0K segment.tar.gz

12K spir.tar.gz

24K a.py

28K segment

184K py

1.9M blog91it.tar.gz

4.9M cms.tar.gz

7.3M blog91it.sql

19M cms.sql

43M qiniu

2、sort -g参数

# du * |sort -g (效果和du *|sort -h一样)

4 cm.sh

4 grep.py

4 pid.py

4 vmrss.sh

4 vms.py

8 new.py

8 segment.tar.gz

12 spir.tar.gz

24 a.py

28 segment

60 py/moudle

68 py/python/pycurl

84 py/python

184 py

1932 blog91it.tar.gz

4936 cms.tar.gz

7384 blog91it.sql

18436 cms.sql

43412 qiniu

这里du使用-sh参数后,结果确不按大小进行排序了

# du * -sh|sort -g

1.9M blog91it.tar.gz

4.0K cm.sh

4.0K grep.py

4.0K pid.py

4.0K vmrss.sh

4.0K vms.py

4.9M cms.tar.gz

7.3M blog91it.sql

8.0K new.py

8.0K segment.tar.gz

12K spir.tar.gz

19M cms.sql

24K a.py

28K segment

43M qiniu

184K py

3、sort -h与-g参数的区别

-h参数是GNU coreutils >= 7.5以后新增的参数,-h会以K、M、G这种大小的顺序进行人类便于识别的顺序进行排序。不过在一些老的linux发行版里,sort里可能没有这个参数。这个时候就需要使用-g参数。而du * -sh|sort -h与du * -s|sort -g 的排序效果是相同的。两个参数的具体区别如下:

-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)

-g, --general-numeric-sort compare according to general numerical value

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值