Завершение вкладки Bash должно работать правильно, если вы просто наберете mv 90843_O
и нажмете вкладку. В противном случае существует один способ правильно избежать имени:
mv "90843_O\\\\'ConnorPaul_GeneralManager.jpg" dest.jpg
Двойные кавычки устраняют необходимость экранировать '
, но два символа обратной косой черты все равно необходимо экранировать (одна дополнительная обратная косая черта для каждого из них дает четыре обратных косой черты. ). Другой вариант:
mv '90843_O\\'\'ConnorPaul_GeneralManager.jpg dest.jpg
Здесь установка обратной косой черты в одинарные кавычки устраняет необходимость их экранирования, но вам нужно закончить одинарные кавычки, чтобы добавить литерал '
. Это экранируется после окончания кавычек.
Обратите внимание, что проблема здесь как в использовании обратной косой черты в имени, так и в одинарной кавычке. Чтобы заменить последовательность \\ '
(поскольку в имени файла в вопросе есть две обратные косые черты, оба вызовут проблемы) на подчеркивание для всех файлов в каталоге с помощью цикла:
for file in *"\\\\'"*; do
mv -i "$file" "${file//"\\\\'"/_}"
done
-i
заставит mv
запросить, если какие-либо файлы будут перезаписаны. Использование prename
( переименовать
ссылки на это во многих системах):
prename -n 's:\\\\'\'':_:g' *"\\\\'"*
Удалите -n
, когда вы счастливы, что он делает то, что вы хотите. Обратите внимание, что символы обратной косой черты должны быть экранированы внутри выражения perl, даже если они заключены в одинарные кавычки (без одинарных кавычек вам понадобится восемь обратных косых черт, поскольку четыре будут удалены оболочкой и не будут частью выражения perl).