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([ 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);

本文转自博客园刘凯毅的博客,原文链接:shell 删除空文件夹,如需转载请自行联系原博主。


目录
相关文章
|
6月前
|
机器学习/深度学习 Shell Linux
linux shell脚本判断文件或文件夹是否存在循环操作
linux shell脚本判断文件或文件夹是否存在循环操作
191 0
|
7月前
|
Shell 开发工具 git
shell空文件夹查找
shell空文件夹查找
45 0
|
Shell
Shell mv 修改文件名、扩展名、文件夹名
Shell mv 修改文件名、扩展名、文件夹名
101 0
|
Shell
shell判断文件、文件夹是否存在
shell判断文件、文件夹是否存在
308 0
|
Shell
shell 获取到文件夹下的文件名
shell 获取到文件夹下的文件名
65 0
shell遍历文件夹及去掉文件后缀名
shell遍历文件夹及去掉文件后缀名
|
Shell Linux
linux shell之删除当前文件夹不包含文件1和文件2的其他所有文件
linux shell之删除当前文件夹不包含文件1和文件2的其他所有文件
194 0