ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SHELL 删除空文件夹

SHELL 删除空文件夹

原创 Linux操作系统 作者:junnylove 时间:2009-06-22 13:41:43 0 删除 编辑

1.windows cygwin 版本 

  find . -type d|
    du |
     gawk '{
if($1=="0"){print $2}}' |     #我这使用 cygwin判断 $1==0  ,如果使用 linux 那就 $1=="4"
       sort -ru |
         gawk '{system("rmdir "$0)}'


2.linux 
版本(其实,这个太不严谨!)

find . -type d|
    du -S |
     gawk '{if($1=="4"){print $2}}' |   
       
sort -ru |
         gawk '{system("rmdir "$0)}'


3.shell + python
查找 文件夹大小py,参考:获取文件夹大小的python代码

#!/bin/python
import os,sys
from os.path import join, getsize

def getdirsize(dir):
        size = 0L;
        
for root, dirs, files in os.walk(dir):
               
size += sum([ getdirsize(join(root,dname)) for dname in dirs ]);
                size += sum([getsize(join(root, name)) for name in files]);
                
return size;

dir_path=sys.argv[1];
filesize = getdirsize(dir_path);
print dir_path,"\t",filesize ;


shell

find . -type d -exec python getDirSize.py {} \;|
sort
 -ru |
gawk '{if($2=="0"){print $1}}' |
gawk '{system(" rmdir "$0)}'






find . -type d
#查找文件夹
du 
#文件夹大小
gawk '{if($1=="0"){print $2}}'
#文件夹为 0 输出
sort -ru
#为删除准备( 比如 文件夹 ./t1 ./t1/t11 。排序为 ./t1/t11 ./t1 。这删除就不会错  )
gawk '{system("rmdir "$0)}'
#野蛮的删除







其他:
结合sort -u  可以找出最小或最大 几个文件

#!python
# python this.py /home/xj_liukaiyi/imusic/ ".*128kbps\/.*\.mp3"
import os,sys,re
from os.path import join, getsize

def getdirsize(dir,refile):
    
for root, dirs, files in os.walk(dir):
    
for dname in dirs :
        getdirsize(join(root,dname),refile)
        
for name in files :
            ffname=join(root,name)
            
if re.search(refile,ffname):
                
print "%09d\t%s" % (getsize(ffname),ffname)

dir_path=sys.argv[1];
file_re=sys.argv[2];

filesize = getdirsize(dir_path,file_re);

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8404772/viewspace-607130/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-06-22

  • 博文量
    36
  • 访问量
    88056