• 原因

在Linux下使用cpmvrm等命令时,经常会碰到“Argument list too long”错误,这个主要就是因为要cp、mv、rm的文件个数太多而导致的

  • 解决方法

Argument list too long这个问题的解决主要会用到两个命令,findxargs

  1. 删除aaa目录下以.zip结尾的文件
#方法一:
find /aaa/ -name "*.zip" | xargs -i rm {}
#方法二:
find /aaa/ -name "*.zip" -exec rm {} \;
  1. 复制aaa目录下以.zip结尾的文件到bbb目录
#方法一:
find /aaa/ -name  "*.zip" | xargs -i cp {} bbb
#方法二:
find /aaa/ -name  "*.zip" -exec cp {} bbb \;
  1. 移动aaa目录下以.zip结尾的文件到bbb目录
#方法一:
find /aaa/ -name  "*.zip" | xargs -i mv {} bbb
#方法二:
find /aaa/ -name  "*.zip" -exec mv {} bbb \;
  • 解释
  • find aaa/ -name "*.zip"是指在aaa文件夹下查找以.zip结尾的文件。

  • xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。而-i参数会将xargs的内容赋值给{}

  • -exec参数后面是指执行其后面的命令,-exec;为结尾,由于各个系统中分号的意义不同,因此可以使用\进行转义,最终{}会被find命令的结果替换。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐