Grrr, @Graeme опередил меня, но я все равно отправлю ...
Если вы заключите имя файла в двойные кавычки, например mv -v "90843_O'ConnorPaul_GeneralManager.jpg" 90843_O_ConnorPaul_GeneralManager.jpg, это поможет; использование не -vявляется обязательным, но он расскажет, что он сделал. Я полагаю, что есть и второй путь, кроме того, чтобы избежать всех символов, если это возможно. Единственный недостаток этого способа, который я знаю, заключается в том, что оболочка будет обрабатывать текст, поскольку он не заключен в одинарные кавычки, но он совсем не манипулирует им, поскольку это не внутренний код, а дополнительное время, необходимое для обработки, не имеет смысла.
Только что протестированный, вы можете иметь символ как >в двойных кавычках, и он будет принят как часть имени файла.
В качестве подсказки на будущее, вы можете использовать ./прямо перед именем файла, если оно вызывает проблемы, например, файлы, начинающиеся с тире: mv ./-file fileбудут переименованы -fileв file. В таком случае вы не можете ни цитировать, ни экранировать имя файла, как исключение.
Как ни странно, я мог бы создать файл, 90843_O'ConnorPaul_GeneralManager.jpgесли бы избежал одинарной кавычки \', но он не смог бы создать его, если бы он не был заключен в двойные кавычки или экранирован.
PS: Завершение Bash - это еще один способ, он работал с проблемой имени файла в вашем файле, но он не будет работать с «черточными» файлами / папками: просто напишите часть имени и нажмите Tab, он сделает все остальное.
vidirэто простое решение подобных проблем.