linux下如何删除一百万个文件

今日QA发了个请求,要求删除某目录下指定格式的文件。

[root@xx resin-3.1.9]# ls | wc -l
1013964

统计了下,有一百万多个文件!

而且文件的命名也很古怪,如“d:\temp\perf\1413787853558.html”...

直接用rm -f  *.html,不支持!

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

尝试用xargs,ls也不支持这么多的参数。

#ls *.html | xargs rm

-bash: /bin/ls: Argument list too long

再换个办法:

ls | grep "d:" | grep temp | grep perf | grep html | xargs rm -f

因为有\字符在文件名称中,无果。


小批量实验了几次,终于想到办法。

先把这些文件名称全部导入到一个文件中

ls | grep "temp" | grep "perf" | grep "d:" | grep "html" >xxx.remove

接着,跑一个for 循环,即可删除。

# for i in `cat xxx.remove`;do rm -f $i;done

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。