linux下删除大量文件的方法
来源:互联网 发布:macbook下软件好下吗 编辑:程序博客网 时间:2024/05/18 02:15
之前一次对大文件的操作,本想按照行数对文件进行切割,结果参数设置错误导致切割时候按照文件大小split,使得目标目录下面出现了超过700万个文件。
如此多的文件直接用ls或者rm根本就没有反应,而且还会卡死,只能通过关闭终端来终止运行。
在网络上找了许多方法来解决这个问题,结果都是因为文件数量实在太多而无法解决。不过好在当时用split切文件的时候其文件的命名有一定的规律,即都是a-z字母的组合,因此就根据这一特点,有针对性地来删除文件。
首先,因为文件数目过多,ls是没有办法有效得到所有目录的,因为ls会先遍历所有的文件名然后输出结果,这就需要很长的时间。
此时可以用到一下指令:
ls [directory] -1 -f | head
它会输出的到最早读取的十个文件名,包括了.和..,因此有效的文件名是8个。
然后由于都是a-z字母的组合,因此截取得到的文件名的前几位字符串,在之后用for循环添加a-z字母来获得目录下可能出现的所有文件名名称,然后用rm来删除文件。文件名是确定的情况下,rm的效率还是有的。
这么做的速度不一定是最快的,但是比起rm *这种需要遍历所有文件然后删去已经快了许多。只要写一个shell script文件然它自己在后台运行就可以了。速度大概是10分钟删除10万个文件。根据目录下面文件的数量,应该要跑上12个小时左右吧,真是心累。
贴上shell script文件
#! /bin/bashfor ((i=0;i<200;i++))do echo $i var=$(ls ./Data/ -1 -f | head) echo $var name1=${var:5:5} for loop1 in {a..z} do for loop2 in {a..z} do rm ./Data/${name1}${loop1}${loop2} done donedone
0 0
- linux下删除大量文件的方法
- linux下删除大量文件的方法
- linux下快速删除目录下大量小文件及快速复制大量小文件方法
- linux下删除大量小文件方法汇总
- Linux下快速删除大量文件/文件夹方法
- Linux下快速删除大量文件/文件夹方法
- Linux下使用rsync最快速删除大量文件的方法
- windows下删除大量文件的快速方法
- linux下快速删除大量文件
- Linux下删除大量小文件
- linux下快速删除大量文件
- linux下快速删除大量文件
- Linux 快速删除大量小文件方法
- Linux 快速删除大量小文件方法
- Linux 快速删除大量小文件方法
- Linux 快速删除大量小文件方法
- linux 删除大量的文件和移动大量的文件
- linux下删除大量文件目录 删除海量文件
- jdbc连接impala
- UIViewController - setNeedsStatusBarAppearanceUpdate
- Vs2005中操作WORD
- 最大字段和
- Ant简明教程
- linux下删除大量文件的方法
- 设计模式--单例模式【Singleton Pattern】
- First Test Blog
- C语言入门----结构与联合
- 代码生成: 利用SQL生成SQL代码
- 使用js使控件隐藏
- Android休眠设置时间
- Android深度自定义Dialog对话框
- eclipse中将项目发布到tomcat的root目录