永久删除文件的方法速度最快是什么方法

中国领先的IT技术网站
51CTO旗下网站
Linux技巧:一次删除一百万个文件的最快方法
昨天,我看到一个非常有趣的删除一个目录下的海量文件的方法。他没有使用find 或 xargs,他很有创意的利用了rsync的强大功能,使用rsync Cdelete将目标文件夹以一个空文件夹来替换。之后,我做了一个实验来比较各种方法。让我吃惊的是,Lee的方法要比其它的快的多。来看看本文的测评。
作者:oschina来源:| 09:12
最初的测评
昨天,我看到一个非常有趣的删除一个目录下的海量文件的方法。这个方法来自里的Zhenyu Lee。
他没有使用find&或&xargs,他很有创意的利用了rsync的强大功能,使用rsync &delete将目标文件夹以一个空文件夹来替换。之后,我做了一个实验来比较各种方法。让我吃惊的是,Lee的方法要比其它的快的多。下面就是我的测评。
CPU: Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
HD: ST3250318AS: 250G/7200RPM
使用&&delete&和&&exclude,你可以选择性删除符合条件的文件。还有一点,当你需要保留这个目录做其它用处时,这种方法是再适合不过了。
几天前,在回复时说我之前的测评无法复制,因为操作的时间持续的太久。我澄清一下,这些数据过大,可能是因为我的计算机在过去的几年里做的事太多,测评中可能存在一些文件系统错误。但我不确定是这些原因。现在好了,我弄了一天比较新的计算机,把测评再做一次。这次我使用/usr/bin/time,它能提供更详细的信息。下面就是新的结果。
(每次都是1000000个文件。每个文件的体积都是0。)
# method 1
~/test $ /usr/bin/time -v
rsync -a --delete empty/ a/
Command being timed: &rsync -a --delete empty/ a/&
User time (seconds): 1.31
System time (seconds): 10.60
Percent of CPU this job got: 95%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:12.42
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 24378
Voluntary context switches: 106
Involuntary context switches: 22
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# method 2
Command being timed: &find b/ -type f -delete&
User time (seconds): 0.41
System time (seconds): 14.46
Percent of CPU this job got: 52%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:28.51
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 11749
Voluntary context switches: 14849
Involuntary context switches: 11
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# method 3
find c/ -type f | xargs -L 100 rm
~/test $ /usr/bin/time -v ./delete.sh
Command being timed: &./delete.sh&
User time (seconds): 2.06
System time (seconds): 20.60
Percent of CPU this job got: 54%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:41.69
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 1764225
Voluntary context switches: 37048
Involuntary context switches: 15074
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# method 4
find d/ -type f | xargs -L 100 -P 100 rm
~/test $ /usr/bin/time -v ./delete.sh
Command being timed: &./delete.sh&
User time (seconds): 2.86
System time (seconds): 27.82
Percent of CPU this job got: 89%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:34.32
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 1764278
Voluntary context switches: 929897
Involuntary context switches: 21720
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# method 5
~/test $ /usr/bin/time -v rm -rf f
Command being timed: &rm -rf f&
User time (seconds): 0.20
System time (seconds): 14.80
Percent of CPU this job got: 47%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:31.29
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 176
Voluntary context switches: 15134
Involuntary context switches: 11
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
我真的十分好奇为什么Lee的方法要比其它的快,竟然比rm -rf也要快。如果有人知道,请写在下面,非常感谢。
[英文原文:&&]
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条头条外电头条外电
24H热文一周话题本月最赞
讲师:0人学习过
讲师:0人学习过
讲师:11人学习过
精选博文论坛热帖下载排行
本书作者结合自己多年实践经验,从Oracle开发应用中遇到的问题着手,全面系统地介绍Oracle的安装与卸载、数据字典、安全管理以及用PL/SQL开...
订阅51CTO邮刊onlyzq 的BLOG
用户名:onlyzq
文章数:138
评论数:51
访问量:1019191
注册日期:
阅读量:5863
阅读量:12276
阅读量:381796
阅读量:1073701
51CTO推荐博文
&在删除数十万个文件时我们常用的删除命令rm -fr * 就不好用了,因为要等待的时间太长。所以必须要采取一些非常手段。我们可以使用rsysnc来实现快速删除大量文件。
1、先安装rsync:
yum install rsync
2、建立一个空的文件夹:
mkdir /tmp/test
3、用rsync删除目标目录:
rsync --delete-before -a -H -v --progress --stats /tmp/test log
这样我们要删除的log目录就会被清空了,删除的速度会非常快。
了这篇文章
类别:┆阅读(0)┆评论(0)
09:38:19 &&1&
&&页数 ( 1/2 ) &yuanhuan_2005 的BLOG
用户名:yuanhuan_2005
文章数:81
评论数:25
访问量:138072
注册日期:
阅读量:5863
阅读量:12276
阅读量:381796
阅读量:1073701
51CTO推荐博文
& &最近,看到一个比较有意思的话题:在Linux下面如何最快的删除一个目录下的百万级的小文件?通常情况下,在Linux中删除文件首先会选择rm命令,但是处理数量巨大的文件的时候,其删除性能并不是非常好。 & &在/How-can-someone-rapidly-delete-400-000-files 中,Zhenyu Lee提出了一个非常好的方案,就是使用rsync -a -delete命令进行删除,其原理是将一个空目录同步到该目录,从而达到删除的目的。并且其速度非常快,比rm命令要高出不少。 文中解释了使用rm命令会比较慢的原因:这是因为使用rm命令删除海量文件的时候,会首先创建一个文件列表,这会耗掉很多时间。 If you have millions of files, using rmwill build file list first, which take a lot of time.[英文原文: ]本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)软件介绍:FastCopy 是 Windows 平台上最快的文件拷贝、删除软件。由于其功能强劲,性能优越,一时间便超越相同类型的所有其他软件。由于该软件十分小巧,你甚至可以在安装后,直接将安装目录中的文件复制到任何可移动存储设备中,方便携带,随取随用。
FastCopy,最快文件复制工具,Windows平台上最快的文件拷贝、删除软件!功能强劲,性能优越!它是源于日本的高效文件复制加速软件,支持拖曳操作,三种不同HDD模式;支持通配符,任务管理/命令行。&by 大眼仔
& 关键字:
下载地址:
如果您发现该软件不能下载,为了保证您快速的下载,推荐使用[网际快车]等专业工具下载. 为确保所下软件能正常使用,请使用[WinRAR v3.8]或以上版本解压本站软件.站内软件都是由网上收集,只供网友学习使用,如果所收集的软件侵犯了您的版权,请告知。

我要回帖

更多关于 微信删除群聊速度慢 的文章

 

随机推荐