Skynet

          ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks

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




          整理 www.aygfsteel.com/Good-Game
          posted on 2009-03-18 15:03 劉凱毅 閱讀(3706) 評論(2)  編輯  收藏 所屬分類: shell

          Feedback

          # re: shell 刪除空文件夾 2009-03-18 17:21 chaifeng

          目錄 a 里面有個空目錄 b,那 a 是空目錄么?

          你那個判斷是否為 0 有什么依據呢?我這里看到的是 4。

          更簡單一點的辦法是:
          find . -type d -empty -exec rmdir {} \;

          可以把我剛才說的那個 b 刪除,a 保留了。  回復  更多評論
            

          # re: shell 刪除空文件夾 2009-03-19 09:32 劉凱毅
          恩 我這 a 也默認是要刪除的 。


          啊你這說的 文件夾大小 ,我這使用的cygwin 確實是0 .
          如果 linux gawk '{if($1=="4"){print $2}}' 看樣子要 4 了  回復  更多評論
            

          主站蜘蛛池模板: 肥乡县| 钦州市| 平顺县| 洛南县| 齐齐哈尔市| 桐乡市| 新郑市| 普宁市| 剑川县| 中西区| 海晏县| 德格县| 德钦县| 蓝山县| 德清县| 九龙城区| 东方市| 潢川县| 弥勒县| 宿州市| 六盘水市| 义乌市| 岳阳县| 克拉玛依市| 天柱县| 通渭县| 鹤岗市| 阳江市| 天峻县| 门源| 南汇区| 内江市| 宁阳县| 三门峡市| 济源市| 南靖县| 上虞市| 南投县| 泽库县| 郁南县| 阿鲁科尔沁旗|