文档章节

Linux下删除大量文件

AllenOR灵感
 AllenOR灵感
发布于 2017/09/10 00:42
字数 320
阅读 1
收藏 0

主要参考了http://www.slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux

首先建立50万个文件

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

1.   rm

➜  test  time rm -f *
zsh: sure you want to delete all the files in /home/hungerr/test [yn]? y
zsh: argument list too long: rm
rm -f *  3.63s user 0.29s system 98% cpu 3.985 total

由于文件数量过多,rm不起作用。

2.  find

➜  test  time find ./ -type f -exec rm {} \;
find ./ -type f -exec rm {} \;  49.86s user 1032.13s system 41% cpu 43:19.17 total

大概43分钟,我的电脑。。。。。。边看视频边删的。

3.  find with delete

➜  test  time find ./ -type f -delete       
find ./ -type f -delete  0.43s user 11.21s system 2% cpu 9:13.38 total

用时9分钟。

4.  rsync

首先建立空文件夹blanktest

➜  ~  time rsync -a --delete blanktest/ test/
rsync -a --delete blanktest/ test/  0.59s user 7.86s system 51% cpu 16.418 total

16s,很好很强大。

5.  Python

import os
import timeit
def 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)  
➜  ~  python test.py
529.309022903

大概用时9分钟。

6.  Perl

➜  test  time perl -e 'for(<*>){((stat)[9]<(unlink))}'
perl -e 'for(<*>){((stat)[9]<(unlink))}'  1.28s user 7.23s system 50% cpu 16.784 total

16s,这个应该最快了。


 

统计一下:

 命令 耗费时间
rm  文件数量太多,不可用
find with -exec 50万文件耗时43分钟
find with -delete 9分钟
Perl 16s
Python 9分钟
rsync with -delete 16s

本文转载自:http://www.cnblogs.com/linxiyue/p/3536925.html

AllenOR灵感
粉丝 11
博文 2635
码字总数 83001
作品 0
程序员
私信 提问
清理Ubuntu系统的缓存、垃圾、多余内核。

linux和windows系统不同,linux不会产生无用垃圾文件,但是在升级缓存中,linux不会自动删除这些文件,还是很占硬盘的! 一、删除缓存 1,非常有用的清理命令: sudo apt-get autoclean 清理...

eric_zhang
2011/06/17
24.7K
0
Linux Kernels 4.10.16, 4.9.28 LTS 和 4.4.68 LTS 发布

Linux Kernels 4.10.16, 4.9.28 LTS 和 4.4.68 LTS 发布了,带来了许多改进。 在发布 Linux Kernel 4.11 系列的第一个更新后,Greg Kroah-Hartman 推出了有关对 Linux 4.10,4.9 和 4.4 内核...

局长
2017/05/16
764
1
讲述下Linux 执行 df 和 du 查看磁盘时占用结果不一致的解决办法

问题现象 1、执行 df -h 查看 ECS Linux 实例文件系统使用率,可以看到 /dev/xvdb1 磁盘占用了约27G,挂载目录为 /opt 。 2、进入到 /opt 目录执行 du -sh ,显示空间总占用量约 2.4 G,即d...

问题终结者
2018/07/13
54
0
Opendedup 2.0 Beta2 发布,重复数据删除

Opendedup 2.0 Beta2 发布,此版本更新内容如下: 添加了重复数据删除虚拟管理器 允许像虚拟块设备一样运行 允许在上面 dedup 任何的文件系统 EXT4,btrfs 和 OCFS2 通过了测试验证和质量检测...

oschina
2014/01/16
324
0
Opendedup 3.0.1 发布,重复数据删除解决方案

Opendedup 3.0.1 发布,此版本更新内容如下: BUG 修复: * Fixed JNI hook to fuse referencing object after garbage collection. Now references a long * Many fixes since this was a ......

oschina
2015/12/06
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

哪些情况下适合使用云服务器?

我们一直在说云服务器价格适中,具备弹性扩展机制,适合部署中小规模的网站或应用。那么云服务器到底适用于哪些情况呢?如果您需要经常原始计算能力,那么使用独立服务器就能满足需求,因为他...

云漫网络Ruan
今天
10
0
Java 中的 String 有没有长度限制

转载: https://juejin.im/post/5d53653f5188257315539f9a String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西...

低至一折起
今天
22
0
OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
11
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
9
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部