bash:文件名中带有撇号的mv文件

bash:文件名中带有撇号的mv文件

我正在尝试使用mv重命名文件。某些要重命名的文件名称包含撇号(或单引号)。文件名将mv与变量一起传递。但我无法让它发挥作用。

当我直接给出文件名时mv,它确实有效,如下所示:

mv "Artificial intelligence/Markoff_Rosenberg__China's_intelligent_weaponry_gets_smarter.pdf" "Artificial intelligence/Markoff_Rosenberg__Chinas_intelligent_weaponry_gets_smarter_(r1205).pdf"

但是当我使用变量时,它不起作用:

orig="Artificial intelligence/Markoff_Rosenberg__China's_intelligent_weaponry_gets_smarter.pdf"
new="Artificial intelligence/Markoff_Rosenberg__Chinas_intelligent_weaponry_gets_smarter_(r1205).pdf"
mv "$orig" "$new"

我收到以下错误消息:

mv: cannot stat 'Artificial intelligence/Markoff_Rosenberg__China'\''s_intelligent_weaponry_gets_smarter.pdf': No such file or directory

这是为什么?为什么\''错误信息中的文件名多了一个?问题的解决办法是什么?

在此先感谢您的帮助!

相关内容