Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2045638
  • 博文数量: 470
  • 博客积分: 10206
  • 博客等级: 上将
  • 技术积分: 5620
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-03 12:50
文章分类

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-04-18 15:34:18

找到一个脚本,但是是perl实现的。http://blog.chinaunix.net/u/12502/showart.php?id=1678383。我想在shell下面实现相同的功能,怎么做呢。关键是排序,例如下面的这个输出。

654K    /usr/share/aclocal
141K    /usr/share/aclocal-1.9
318K    /usr/share/alsa
145K    /usr/share/applications
1.9M    /usr/share/audacious
170K    /usr/share/audacious-plugins
24K /usr/share/aumix
1.2M    /usr/share/autoconf
926K    /usr/share/automake-1.9


这个结果是du输出的,但是du输出的时候没有进行排序,我想把这个结果进行排序。如果不显示M、K的话,只显示字节又很难去数到底是多大。

[ 本帖最后由 kuangzhangshi 于 2009-4-8 15:16 编辑 ]



您对本贴的看法:
| |
  帅哥 ((小学生))
风云使者
小学生



CU编号: 468971
注册:2006-9-24
最后登录: 2009-04-17
帖子:
精华:0







状态:...保密...

[] [] [博客]


[]     顶部
发表于 2009-4-8 15:11 
回复 #1 kuangzhangshi 的帖子

ll |grep ^d |du sh */|sort

[ 本帖最后由 wtuter 于 2009-4-8 15:15 编辑 ]



您对本贴的看法:

__________________________________

小学生
| |

侠客




CU编号: 570318
注册:2007-5-31
最后登录: 2009-04-17
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-8 15:20 


QUOTE:
原帖由 wtuter 于 2009-4-8 15:11 发表
ll |grep ^d |du sh */|sort

貌似不行啊,我是这样的ls -l|grep "^d"|awk '{print $9}'|xargs du -hs |sort 。。。。,就是排序不知道怎么排



您对本贴的看法:
| |
(我在学习,我要进步)
精灵使
打破水锅问到底。




CU编号: 713644
注册:2008-6-3
最后登录: 2009-04-18
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-8 15:23 
du -s * |sort -nr

[ 本帖最后由 我是DBA 于 2009-4-8 15:25 编辑 ]



您对本贴的看法:

__________________________________

C 初学,请多多指教。

| |
  帅哥 ((小学生))
风云使者
小学生



CU编号: 468971
注册:2006-9-24
最后登录: 2009-04-17
帖子:
精华:0







状态:...保密...

[] [] [博客]


[]     顶部
发表于 2009-4-8 15:23 
回复 #3 kuangzhangshi 的帖子

[W]ls -l|grep "^d"|du -sh */|sort
4.0K    212/
4.0K    yujx/
8.0K    yu/



您对本贴的看法:

__________________________________

小学生
| |
  帅哥 ((小学生))
风云使者
小学生



CU编号: 468971
注册:2006-9-24
最后登录: 2009-04-17
帖子:
精华:0







状态:...保密...

[] [] [博客]


[]     顶部
发表于 2009-4-8 15:23 
回复 #4 我是DBA 的帖子

目录



您对本贴的看法:

__________________________________

小学生
| |
(我在学习,我要进步)
精灵使
打破水锅问到底。




CU编号: 713644
注册:2008-6-3
最后登录: 2009-04-18
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-8 15:28 
回复 #6 wtuter 的帖子

[root@datacenter apache]# for i in $(ls -l |grep '^d' |du -s * |sort -nr|awk '{print $2}');do du -sh $i;done
573M    htdocs
130M    logs
73M     htdocs.tar
40M     template
19M     manual
16M     modules
3.4M    freeidc
2.3M    lib
1.8M    icons
1.7M    include
1.7M    bin
1.5M    bakfreeidc
1.5M    template.tar
408K    conf
292K    error
248K    build
128K    man
24K     cgi-bin



您对本贴的看法:

__________________________________

C 初学,请多多指教。

| |

侠客




CU编号: 570318
注册:2007-5-31
最后登录: 2009-04-17
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-8 15:32 


QUOTE:
原帖由 wtuter 于 2009-4-8 15:23 发表
[W]ls -l|grep "^d"|du -sh */|sort
4.0K    212/
4.0K    yujx/
8.0K    yu/

多谢wtuter兄的热心回答,但是你找个复杂点的文件夹试试,就是上M的,100多K的10多K大小的文件夹都有的试试。好像就不行了。



您对本贴的看法:
| |

侠客




CU编号: 570318
注册:2007-5-31
最后登录: 2009-04-17
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-8 15:34 


QUOTE:
原帖由 我是DBA 于 2009-4-8 15:28 发表
[root@datacenter apache]# for i in $(ls -l |grep '^d' |du -s * |sort -nr|awk '{print $2}');do du -sh $i;done
573M    htdocs
130M    logs
73M     htdocs.tar
40M     template
19M     manual
...

要的就是这个,多谢我是DBA 兄。仔细研究下,不懂的一会在问问:)



您对本贴的看法:
| |

侠客




CU编号: 570318
注册:2007-5-31
最后登录: 2009-04-17
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-8 15:37 
这样用了du两便,如果文件很多的话,会不会比较慢,有没有一遍du的方法呢


阅读(963) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~