本文共 1546 字,大约阅读时间需要 5 分钟。
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,参考: # !/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); 本文转自博客园刘凯毅的博客,原文链接:,如需转载请自行联系原博主。