首页 > 其他分享 >快速删除大量小文件(多种方式速度对比)

快速删除大量小文件(多种方式速度对比)

时间:2024-11-18 11:08:48浏览次数:1  
标签:tmp 文件 temp 删除 对比 time real rm find

要测试删除大量小文件,首先需要先创建大量小文件,比如创建50W个txt文件:

mkdir /tmp/temp && cd /tmp/temp
seq -f "%g.txt" 1 500000 | xargs -P 4 -n 10000 touch

最快的是直接rm删除目录(但并非是瞬间的),是删除速度的极限。

方法一:使用rsync

$ mkdir /tmp/empty
$ time rsync -r --delete /tmp/empty/ /tmp/temp/

real    0m8.556s
user    0m0.239s
sys     0m7.380s

方法二:使用Perl

$ cd /tmp/temp/
$ time perl -e 'unlink for (<"*">)'

real    0m8.773s
user    0m0.281s
sys     0m7.582s

方法三:使用Ruby

$ cd /tmp/temp/
$ time ruby -e 'Dir["*.txt"].each {|x| File.unlink x}'

real    0m8.882s
user    0m0.613s 
sys     0m7.429s

$ time ruby -e 'Dir.each_child(".") {|f| File.unlink "/tmp/temp/"+f}'

real    0m6.999s
user    0m0.443s
sys     0m5.912s

方法四:使用Python

$ cat a.py
import os
dir = "/tmp/temp/"
for file in os.listdir(dir):
  os.unlink(dir+file)

$ time python3 a.py

real    0m6.417s
user    0m0.339s
sys     0m5.451s

方法五:使用find结合xargs

# 4个rm进程(我只有4核),每次删一个文件
$ time bash -c 'find /tmp/temp/ -type f -print0 | xargs -0 -P4 -i rm -rf {}' 

real    2m51.573s
user    0m3.104s
sys     3m59.286s

# 4个rm进程(我只有4核),每次删20000个文件
# 和-n的数量也有关系
$ time bash -c 'find /tmp/temp/ -type f -print0 | xargs -0 -P4 -n20000 rm -rf'     

real    0m12.746s
user    0m0.282s
sys     0m19.133s

# 直接使用find -delete,相比xargs -P,可能更快,可能更慢,跟find版本有关
# 对于较新的find版本来说,由于存在额外的优化,find -delete可能达到了删除文件速度的极致,
# 能够达到和rm删除目录不相上下的速度(rm删除目录时会先删除目录中的每一个文件,再删除空目录本身,所以和find一样也存在遍历目录的过程)
$ time bash -c 'find /tmp/temp -type f -delete'

标签:tmp,文件,temp,删除,对比,time,real,rm,find
From: https://www.cnblogs.com/hflinux/p/18552116

相关文章

  • Docker:文件、镜像与容器,你搞清楚了吗?
    Docker是实现容器化和分发完整环境与应用的强大工具。在使用Docker时,文件和镜像是核心概念,但两者之间的关系往往令人困惑。比如,「Dockerfile」是什么?「镜像」的作用是什么?「容器实例」和「镜像」之间又是什么关系?本文将通过通俗易懂的解释、代码示例以及实际案例,清晰揭示这......
  • 如何从 Android 图库中恢复误删除的照片
    如果您正在阅读这篇文章,那么您肯定意外地从Android设备中删除了照片。并且您正在寻找一种简单的方法来恢复Android图库中已删除的照片。从图库恢复已删除的照片随着技术的进步,现在使用单个设备(即Android手机),您就可以捕捉图像、根据需要编辑图像、高效管理图像、存储图......
  • 【解密】什么样的跨网文件摆渡软件 可以让传输又简单又安全?
    跨网文件摆渡软件,就是解决不同网络、网段、安全域之间的文件传输交换问题。这些网络和安全域之间,可能是纯物理隔离,也可能是用防火墙、VLAN、虚拟化这些手段做的逻辑隔离,但是不管是哪种隔离方式,最终都会用到跨网文件摆渡软件!使用跨网文件摆渡软件的必要性使用跨网文件摆渡软件的......
  • 文件查找
    作用:根据不同的文件类型查找出想要的文件语法结构: find在哪里找找什么类型的#格式1 find/dataf find/data按照名称查找#格式2【1】、常用文件类型文件类型:f#表示普通文件d#表示目录l#表示链接文件c#表示字......
  • 【漏洞复现】用友 YonBIP高级版 yonbiplogin 任意文件读取漏洞
    免责声明:        本文旨在提供有关特定漏洞的信息,以帮助用户了解潜在风险。发布此信息旨在促进网络安全意识和技术进步,并非出于恶意。读者应理解,利用本文提到的漏洞或进行相关测试可能违反法律或服务协议。未经授权访问系统、网络或应用程序可能导致法律责任或严......
  • Microsoft Visual Studio VS dumpbin使用查看.obj、.lib、.dll、.exe文件头、段函数
    前言全局说明dumpbin是VS自带的MicrosoftCOFF二进制文件转换器,它显示有关通用对象文件格式(COFF)二进制文件的信息。可以使用dumpbin检查COFF对象文件、标准COFF对象库、可执行文件和动态链接库等。被查看的文件名后缀可以为:.obj、.lib、.dll、.exe一、说明正确情况下,安......
  • PVC-U 和 U-PVC 都是指未增塑的聚氯乙烯(Polyvinyl Chloride)材料,二者在一些文献和产品
    PVC-U和U-PVC都是指未增塑的聚氯乙烯(PolyvinylChloride)材料,二者在一些文献和产品中常被交替使用,但它们在某些细节上有所区别。以下是它们的对比表:特性PVC-UU-PVC全称UnplasticizedPolyvinylChlorideUnplasticizedPolyvinylChloride含义未增塑的聚氯乙烯,......
  • 7-Zip 和 WinRAR 的对比分析,按不同的特性进行表格化:
    7-Zip和WinRAR的对比分析,按不同的特性进行表格化:特性7-ZipWinRAR开发公司7-Zip由IgorPavlov开发WinRAR由RARLab开发支持的格式支持7z,ZIP,RAR,TAR,GZ,ISO等支持RAR,ZIP,TAR,GZ,ISO等压缩比率通常提供更高的压缩比率(尤其是7z格式)......
  • 数据库EVA模式与传统数据库模式 | 分析对比及应用场景
    目录1.实战场景2.基本知识3.应用场景1.实战场景从实战进行探讨以及深入:事因是同事给我创建表结构的时候,以如下这种方式进行创建:看到这张表的结构可能会思考:为啥设备的部件值(日期、数值、字符串)为啥要单独弄三张表,不直接弄成一张部件表去存储呢???后续得到的......
  • mysql如何批量删除海量数据
    一、删除大表的部分数据一个表有1亿6000万的数据,有一个自增ID。最大值就是1亿6000万,需要删除大于250万以后的数据,有什么办法可以快速删除?看到mysql文档有一种解决方案:http://dev.mysql.com/doc/refman/5.0/en/delete.htmlIfyouaredeletingmanyrowsfromalargetable,......