Linux输出“Argument list too long”的解决方法
原因在Linux下使用cp,mv,rm等命令时,经常会碰到“Argument list too long”错误,这个主要就是因为要cp、mv、rm的文件个数太多而导致的解决方法Argument list too long这个问题的解决主要会用到两个命令,find和xargs。删除aaa目录下以.zip结尾的文件#方法一:find /aaa/ -name "*.zip" | xargs -i rm
·
- 原因
在Linux下使用cp
,mv
,rm
等命令时,经常会碰到“Argument list too long”错误,这个主要就是因为要cp、mv、rm的文件个数太多而导致的
- 解决方法
Argument list too long
这个问题的解决主要会用到两个命令,find
和xargs
。
- 删除aaa目录下以.zip结尾的文件
#方法一:
find /aaa/ -name "*.zip" | xargs -i rm {}
#方法二:
find /aaa/ -name "*.zip" -exec rm {} \;
- 复制aaa目录下以.zip结尾的文件到bbb目录
#方法一:
find /aaa/ -name "*.zip" | xargs -i cp {} bbb
#方法二:
find /aaa/ -name "*.zip" -exec cp {} bbb \;
- 移动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
命令的结果替换。
更多推荐
已为社区贡献1条内容
所有评论(0)