На этот вопрос уже есть ответ здесь:
Я играю с FTP через командную строку, и у меня возникают две проблемы. Я не могу переименовать или ввести папки, например:
dir /home/folder1/Human (2012)
Я пробовал:
cd ~/folder1/Human\ (2012)
Здесь я получаю сообщение, что папка не существует
.
mv ~/folder1/Human\ (2012)
В этом случае я получаю сообщение, в котором говорится:
syntaxfailure at (
Как я могу решить эту проблему?
Вы могли удвоиться, заключают Ваш путь в кавычки:
cd ~/"folder1/Human (2012)"
или необходимо обеспечить escape-последовательность для (
, )
и (пространство) (поскольку это специальные символы):
cd ~/folder1/Human\ \(2012\)
и
mv ~/"folder1/Human (2012)"
С escape-последовательностью:
mv ~/folder1/Human\ \(2012\)
Вы имеете верное представление с \
перед пространством. Это относится ко всему специальному characters— включенные круглые скобки. Поместите обратную косую черту перед открытым paren и другой обратной косой чертой перед завершением paren, и это будет работать.
заполнение клавишей Tab полезно в этих случаях..., если Вы начнете вводить имя файла и затем нажмете Вкладку , то это автоматически заполнит остальную часть имени файла, вставляя обратные косые черты в случае необходимости. (Если Вы не ввели достаточно имени файла для него, чтобы быть однозначными, какой файл Вы имеете в виду, удар все еще автоматически заполнит такое большое имя файла, как это может. Нажимающая вкладка дважды покажет список возможных завершений имени файла.)
Я соглашаюсь с ищейкой, что способ сделать это должно использовать "
метки при определении файла или каталога.
Однако, если существует целый набор каталогов, которые должны быть переименованы, можно использовать rename
для переименования их к более дружественным именам. Переименуйте работы, подобные sed
кроме rename
, переименовывает файлы и каталоги, тогда как sed
обычно используется для редактирования содержания файлов. Вот пример:
rename 's/ //g;s/\(//g;s/\)//g' ~/folder1/*
Так, если Вам определили местоположение следующих каталогов в ~/folder1
:
Human (2012)
Human (2011)
Human (2010)
они будут переименованы к этому вместо этого:
Human2012
Human2011
Human2010
Выполнение следующая команда для получения дополнительной информации:
man rename