本文主要是介绍find 命令解决mv: invalid option -- ‘E‘和Argument list too long问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当使用mv命令的时候,有时候会遇到如下两个问题导致命令执行失败:
- 错误提示:
Argument list too long
,原因:文件数量过多。 - 错误提示:
mv: invalid option -- 'E'
,原因:文件名含中文或者特殊字符而shell不支持。
这些问题都可以通过find命令来解决。例如:
sudo find ~/ -name "*.jpg" | xargs -i sudo mv {} /var/ftp/pic
注意find命令默认递归查找,如果不想递归查找,需要-maxdepth 1
参数。
sudo find ~/ -maxdepth 1 -name "*.jpg" | xargs -i sudo mv {} /var/ftp/pic
类似的,如果zip命令遇到文件太多也会提示arguments too long, 解决办法:
# 方法一:
find path/ -name "*.png" | xargs -i zip img.zip {}
# 方法二:
find path/ -name "*.png" -exec zip img.zip {}
rm
# 删除path文件夹下以png结尾的文件
# 方法一:
find path/ -name "*.png" | xargs -i rm {}
# 方法二:
find path/ -name "*.png" -exec rm {}
cp
# 拷贝src文件夹下以png结尾的文件到目标文件夹dst下
# 方法一:
find src/ -name "*.png" | xargs -i cp {} dst
# 方法二:
find src/ -name "*.png" -exec cp {} dst
这篇关于find 命令解决mv: invalid option -- ‘E‘和Argument list too long问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!