linux上删除文件过慢,Linux上删除大量文件几种方式对比

Linux上删除大量文件几种方式对比

linux上删除大量小文件删除测试:删除500000个小文件测试

生成文件:

$ for i in $(seq 500000);do echo 'text' >hello/$i.txt;done

$ du -sh hello

2.0Ghello

1. rm删除:因为文件数量太多,rm无法删除(报错)

$ time rm -f *

-bash: /usr/bin/rm: Argument list too long

real0m2.676s

user0m2.340s

sys0m0.272s

2. find查找删除:-exec

-exec: 该参数是将查找的结果文件名,逐个传递给后面的命令执行,如果文件较多,会导致效率较低。

xargs: 该命令是将查找的结果一次性传给后面的命令执行,效率比较高。但是不能操作文件名有特殊字符的文件。

$ time find . -type f -exec rm {} \;

real7m16.154s

user0m51.171s

sys5m51.214s

3. find查找删除:xargs

$ time find . -type f|xargs rm -rf

real0m17.860s

user0m1.021s

sys0m8.838s

4. find调用-delete删除

$ time find . -type f -delete

real0m16.953s

user0m0.535s

sys0m8.866s

$ time find . -type f -delete

real0m16.221s

user0m0.578s

sys0m8.098s

5. ls和xargs组合删除

$ time ls|xargs -L 10000 rm -f

real0m13.764s

user0m2.856s

sys0m8.630s

$ time ls|xargs -L 5000 rm -f

real0m13.879s

user0m3.053s

sys0m8.622s

6. rsync delete删除

--delete delete extraneous files from dest dirs

--delete-before receiver deletes before xfer, not during

--delete-during receiver deletes during the transfer

--delete-after receiver deletes after transfer, not during

$ mkdir blank # 建立空文件夹

$ time rsync -a --delete blank/ hello/

real0m15.293s

user0m0.590s

sys0m12.397s

$ time rsync -a --delete blank/ hello/

real0m14.833s

user0m0.590s

sys0m11.977s

$ time rsync -a --delete-before blank/ hello/

real0m14.884s

user0m0.602s

sys0m12.147s

$ time rsync -a --delete-during blank/ hello/

real0m15.468s

user0m0.693s

sys0m12.441s

$ time rsync -a --delete-after blank/ hello/

real0m15.135s

user0m0.600s

sys0m12.253s

总结:

命令

时间

备注

rm

无法删除

...

find + -exec

7m16s

耗费时间太长

find + xargs

17s

时间较短

find + delete

16s

时间较短

ls + xargs

13s

时间短

rsync + delete

15s

时间短

如何恢复 Linux 上删除的文件,第 1 部分

来源:http://www.ibm.com/developerworks/cn/linux/l-cn-filesrc/ 原理及普通文件的恢复 要想恢复误删除的文件,必须清楚数据在磁盘上究竟是如何存储的 ...

Linux就这个范儿 第18章 这里也是鼓乐笙箫 Linux读写内存数据的三种方式

Linux就这个范儿 第18章  这里也是鼓乐笙箫  Linux读写内存数据的三种方式 P703 Linux读写内存数据的三种方式 1.read  ,write方式会在用户空间和内核空间不断拷贝数据, ...

linux下软件安装的几种方式

linux下软件安装的几种方式(主要有源码安装, rpm安装, yum安装). 一:源码安装 几乎所有的开源软件都支持在Linux下运行,而这些软件一般都以源码形式发放,只需要Linux安装了gcc. ...

【转】Linux下软件安装的几种方式

转自Linux下软件安装的几种方式 Linux 系统的/usr目录 Linux 软件安装到哪里合适,目录详解 Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr:系统 ...

Linux下一次删除百万文件

Linux下一次删除百万文件 线上环境遇到的一个问题,文件数量过多,执行rm命令报错 # rm -f ./* -bash: /bin/rm: Argument list too long 根据报错检查 ...

Linux服务器删除乱码文件和文件夹的方法

Linux服务器删除乱码文件和文件夹的方法 首页进入乱码文件所在文件夹由于php大势所趋,所以接触Linux服务器的机会越来越多.不同于Windows服务器,Linux服务器只支持数字.英文等字符,对 ...

【Linux】多线程同步的四种方式

背景问题:在特定的应用场景下,多线程不进行同步会造成什么问题? 通过多线程模拟多窗口售票为例: #include #include ...

linux下删除大量文件提示参数过长解决办法

linux下删除大量文件提示参数过长解决办法:在当前目录下rm -rf * 在linux中删除大量文件时,直接用rm会出现:-bash: /bin/rm: 参数列表过长的错误. 这时可以用find命令 ...

随机推荐

java中接口的定义和接口的实现

1.接口的定义 使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下: [修饰符] interfa ...

iOS 中实现功能引导页面

// //  guideView.h //  07-功能引导-李洪强 // //  Created by vic fan on 16/1/4. //  Copyright © 2016年 李洪强. A ...

SQL语句-批量插入表(表数据插表)

批量插入表(表数据插表) ****1.INSERT INTO SELECT语句语句形式为:Insert into Table2(field1,field2,...) select value1,val ...

Configuration对象

Configuration对象 Hibernate的持久化操作离不开SessionFactory对象,使用该对象的openSession()方法可以打开Session对象.而SessionFactor ...

C++@sublime GDB调试

正文转自:http://www.cppblog.com/lucency/archive/2012/08/09/59214.html 之前在网上搜索了好久使用sublime调试C和C++的文章,但是徒劳 ...

jQuery1.9 $.browser 的替代方法

jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support . 在更新的 2.0 版本中,将不再支持 IE 6/7/8. ...

Asp.Net 母版页

背景:回顾下以前用到过的asp.net控件 介绍: 使用 ASP.NET 母版页可以为应用程序中的页创建一致的布局.单个母版页可以为应用程序中的所有页(或一组页)定义所需的外观和标准行为.然后可以创建 ...

boost准模板库scoped_ptr指针的使用以及auto_ptr智能指针的对照

首先我们看看scoped_ptr的基本使用,包括了swap(),get(),reset()的使用,重要的提醒是作用域结束的时候会自己主动析构,无需手动的释放资源: #include

从Chrome源码看JS Array的实现

.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto } .crayon-line spa ...

用 Eclipse 搭建一个简单的 Maven spring mybatis 项目(包含测试用例)

1: 先搭建一个Maven项目: 创建好后的目录: 2: 配置pom.xml文件:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值