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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值