linux 下刪除大量小文件的方法和效率

一  首先建立10萬個文件

新建文件夾,腳本創建小文件

for i in $(seq 1 100000);do echo text >>$i.txt;done

多種刪除方式

1)rm刪除

      rm -f *

2)  find刪除

     find ./ -type f -exec rm {} \;     

解釋:-type 按類型查找 例:find /boot -type d 【d目錄;f普通文件;b塊設備;c字符設備文件】

         #-exec command {} \; —–將查到的文件執行command操作,{} 和 \;之間有空格,{} 表示find到的結果,最後有反斜槓\ 和 分號 ;

3) find with delete

    find ./ -type f -delete

4)rsync刪除

     Rsync(remote synchronize)是一個遠程數據同步工具,可通過LAN/WAN快速同步多臺主機間的文件。Rsync使用所謂的“Rsync算法”來使本地和遠 程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快

    關於 rsync 刪除用法鏈接 https://www.cnblogs.com/kevingrace/p/5766139.html

   首先創建空文件夾blankest

   rsync -a --delete blankest/ test/

5) Python刪除

import osimport timeitdef main():    for pathname,dirnames,filenames in os.walk('/home/username/test'):        for filename in filenames:            file=os.path.join(pathname,filename)            os.remove(file)            if __name__=='__main__':t=timeit.Timer('main()','from __main__ import main')print t.timeit(1) 

6) Perl刪除

     perl -e 'for(<*>){((stat)[9]<(unlink))}'

結論:刪除大量小文件rsync最快,最方便

除方法5之外,以10萬的小文件驗證,與上述結論相符合。

 

原文鏈接:https://mp.weixin.qq.com/s/4m3DNC2Fvqm1ehcf-sWVaQ

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章