find命令删除大量小文件
在Linux下使用 "rm -rf *" 试图删除非常大量的小文件时,可能会报类似下边的错误:
/bin/rm: Argument list too long.
这是因为通配符"*"在执行时会被每个匹配的文件名来替换,例如“rm -rf file1 file2 file3 file4″。
系统只分配了一个比较小的缓冲区用来对这个列表进行排序,如果这个缓冲区满了,则shell不能执行这个命令。
为了解决这个问题,很多人使用find命令来操作。即用find查找每一个文件,然后把文件名一个接一个的传递个rm命令,形式如下:
find . -type f -exec rm -v {} \;
但是这个方法对于数量巨大的文件时非常缓慢。
google找到了这份blog文章: Deleting tons of files in Linux (Argument list too long),参考文中的方法解决了我的问题。
办法就是使用find命令内置的 "-delete" 参数 ,使用这种方法删除文件,速度大概是 2000个文件/秒,速度比之前方法得到极大提高。当然也可以加上 "-print"参数来显示每个删除的文件。
find . -type f -delete
find . -type d -print -delete
You can also show the filenames as you’re deleting them:
find . -type f -print -delete
…or even show how many files will be deleted, then time how long it takes to delete them:
root@devel# ls -1 | wc -l && time find . -type f -delete
100000
real 0m3.660s
user 0m0.036s
sys 0m0.552s
转载于:https://blog.51cto.com/xoyabc/1660685
find命令删除大量小文件相关推荐
- Linux快速复制T级数据或删除大量小文件
1:快速大量小文件复制 a. 本机不同磁盘之间复制: 复制目录 $ tar cvf – /home/src_dir | tar xvf – -C /opt 复制文件 $ tar cf – access ...
- Linux快速复制或删除大量小文件
前言 公司需要输送给网安部一批数据集,共计1550w张图片,大约3,5T. 处理过程中同时参考网上的一些方法的实践总结. 1:快速大量小文件复制 a. 本机不同磁盘之间复制: 复制目录 $ tar c ...
- Linux 快速删除大量小文件方法
Linux 快速删除大量小文件方法 当我们在linux系统中要删除数万或者数十万甚至数百万的文件时使用rm -rf *就不太好用,因为要等待很长一段时间.在这种情况之下我们可以使用linux系 ...
- Ubuntu快速删除大量小文件方法
进行以下两步操作即可: 1.第一步:创建空的文件夹: mkdir /tmp/blank 2.第二步:执行以下命令:rsync --delete-before -d /tmp/blank/ /home/ ...
- Linux快速复制或删除大量小文件 1
在Linux下需要对大量小文件进行移动或复制时,用cp.mv都会显得很没有效率,可以用tar先压缩再解压缩再结合nc使用网络传输的方式. 一.快速复制 1.不同磁盘下复制 # tar cvf - /s ...
- 【✅windows奇怪的知识增加了✅】windows系统下快速删除海量小文件方法
背景 测试收图demo等,会在本地保存大量图片文件,时间一长,会有多哒几十个GB的数据,占用大量磁盘空间.使用windows的右键删除耗时完全不靠谱,需要十几个小时.尝试了shift+del还是很慢. ...
- rm 命令删除除指定文件外的所有文件,非常简单
非常简单, 只需要在不需要删除的文件前面添加英文感叹号 !,多个文件用竖线隔开放在小括号里. 比如要删除 除 testfile 和 libtest.so 之外的所有文件及文件夹, rm -rf !(t ...
- linux快速删除大量目录,Linux 快速删除大量小文件方法
当我们在linux系统中要删除数万或者数十万甚至数百万的文件时使用rm -rf *就不太好用,因为要等待很长一段时间.在这种情况之下我们可以使用linux系统命令rsync来巧妙的处理.rsync实际 ...
- linux 快速删除大量小文件(数十万级别)
进行以下两步操作即可: # 第一步:创建空的文件夹: mkdir /tmp/blank# 第二步:执行以下命令: rsync --delete-before -d --progress /tmp/ ...
最新文章
- 遗传算法解决01背包
- ArrayList和LinkList区别
- 单例模式 之 单例模式——枚举
- HDOJ--4821--String【弦hash】
- python版本升级后编译_python学习笔记(7)--python版本升级
- NET中使用Memcached的相关资源整理
- 《Effective C#》读书笔记——条目14:尽量减少重复的初始化逻辑.NET资源管理
- 白话空间统计之二十五:空间权重矩阵(四)R语言中的空间权重矩阵(1)
- std::deque的使用
- 比较(0,π/2]上对sinx/x的定积分、对x/sinx的定积分与1的大小关系
- 计算机无法读光盘,win10系统无法读取光盘如何解决 win10系统读取光盘失败的解决方法...
- 小米官网竖直导航栏html,手把手教你做小米商城顶部导航栏
- 基于STM32F030实现RFID射频识别
- Google地图中关于根据具体坐标定位真实地理位置
- 学习日志-《微习惯》心得
- 超声波测距模块工作原理
- 通俗的讲,网络爬虫到底是什么?
- HDU 5242 上海大都会 G题
- 编辑数码照片最快最有趣的方式——NCH PhotoPad for Mac
- 计算机文档培训讲座,计算机的基础知识培训讲座.ppt