Linux解决批量删除问题(rm -f *)出现的 Argument list too long的问题

2021-08-15 1347点热度 0人点赞 0条评论

有一些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

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论