shell 删除空文件夹

shell 删除空文件夹

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 
- |
     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([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)}' #野蛮的删除

你可能感兴趣的:(shell 删除空文件夹)