我有一个重命名命令,如下所示:
rename ".csv" "-en.csv" Daily_vills.csv
rename "^" "07302019" Daily*
运行此命令时,出现错误“重命名:无效选项-'e”” 。我已经尝试过“ \ -en.csv”,但这会导致“ Daily_vills \ -en.csv”
我的问题是如何使bash理解-en是替换值而不是参数。
原始
:Daily_vills.csv
目标;
07302019Daily_vills-en.csv
对此的任何帮助将不胜感激
答案 0 :(得分:1)
使用--
通知rename
选项结束。
rename -- ".csv" "-en.csv" Daily_vills.csv
准则10:
不是选项参数的第一个参数应作为表示选项结尾的定界符被接受。以下所有参数都应视为操作数,即使它们以'-'字符开头。
在许多* nix工具中,通常使用--
通知选项结束。例子:
# touch a file named -a
touch -- -a
# cat a file named -a
cat -- -a
# printf the string -b
printf -- -b
# find a string '-c' in files in current directory
grep -- -c *
rename
实用程序还遵循posix实用程序约定中的指南。 --
可以用来通知rename
选项的结束。