有一些Linux系统上,如果文件夹里有很多文件,执行删除里面的文件的时候,会出现这个错误:
[root@ecs-587c ~]# cd /opt; [root@ecs-587c opt]# rm -rf *.jpg -bash: /bin/rm: Argument list too long
来看下:
[root@ecs-587c opt]# getconf ARG_MAX 2097152
可能是参数长度大小有限制,里面的文件数超过了这个,就无法删除了!
解决方案
之前的文章,有介绍如何在Linux下按照规律找出文件并做批量处理:https://blog.terrynow.com/2021/02/08/linux-shell-find-files-by-pattern-and-process-ie-delete/
这次也可以利用这个方法来做:
- 方法1
find . -name '*.jpg' -type f -print -exec rm -rf {} \;
- 方法2(全部删除)
for i in *; do rm "$i"; done
- 方法3(全部删除)
printf '%s\0' * | xargs -0 rm
文章评论