今日QA发了个请求,要求删除某目录下指定格式的文件。
[[email protected] 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
时间: 2024-11-05 18:57:08