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 劉凱毅 閱讀(3707) 評論(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 了  回復  更多評論
            

          主站蜘蛛池模板: 东乌| 溧水县| 侯马市| 崇文区| 普宁市| 苏尼特右旗| 闽侯县| 岳阳县| 罗平县| 隆昌县| 广水市| 兴山县| 峡江县| 嘉善县| 辛集市| 博兴县| 黄大仙区| 陆川县| 叶城县| 潜山县| 乌兰察布市| 会泽县| 高碑店市| 新乡市| 班戈县| 于田县| 广灵县| 保定市| 沁水县| 遂川县| 常州市| 梁山县| 敦化市| 阳信县| 怀远县| 大田县| 旅游| 乡城县| 内乡县| 来安县| 柯坪县|