非法选项-xargs shell命令的命令中为1

鸡蛋

我有一些文件需要重命名。我尝试使用xargs和mv命令,但出现错误

mv: illegal option -- 1
usage: mv [-f | -i | -n] [-v] source target
       mv [-f | -i | -n] [-v] source ... directory

我的目录包含-1,-2,-3之类的文件

我使用的命令是

ls | xargs -I{} mv '{}' old'{}'
黑珍珠

这里的问题是文件名以开头-大多数bash内置命令都将前面的任何内容-视为命令的可选参数。您可以--用来指示命令选项的结尾。例如,在此处,-1将其作为mv命令的参数

您可以使用解决此问题

ls | xargs -I{} mv -- '{}' old'{}'

注意:您可以使用-tflag inxargs来查看命令正在执行。可能会使调试更容易。

man bash

除非另有说明,否则本节中记录为接受选项的每个内置命令均以-accepts-- 开头,以表示选项的结尾

:truefalse,和test建宏不接受选项,并没有把--特别。exitlogoutbreakcontinuelet,和shift内建接受并处理论点开始-,而不需要--其他接受自变量但未指定为接受选项的内建函数-将以无效选项开头的自变量解释为无效选项,并要求--阻止这种解释。

请注意,这echo并不--意味着选项的结束。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章