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);
整理 www.blogjava.net/Good-Game