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

Почему так? Почему в сообщении об ошибке в имени файла лишний символ \''? И как решить проблему?

Заранее спасибо за вашу помощь!

Связанный контент