У меня есть имя каталога с ISO и эмулятором , содержащим некоторые важные файлы. и этот каталог находится в другом разделе, а раздел не отображается в моем FileManager (Nautilus). поэтому я монтирую свой раздел и получаю доступ к нему с терминала, но я не могу войти в каталог из-за его имени .
когда я пытался сменить каталог:
cd ISO&Emulator
результат:
[1] 1635
bash: Emulator: command not found
bash: cd: ISO: No such file or directory
[1]+ Exit 1
он принимает имя каталога в качестве команды. какие способы доступа к этому каталогу с терминала?
как это исправить?
Вы должны заключить в кавычки имя файла или каталога, которое содержит специальные символы, когда вы их используете:
cd 'ISO&Emulator'
cd "ISO&Emulator"
Или экранировать (или заключать в кавычки) только специальный символ:
cd ISO\&Emulator
cd ISO'&'Emulator
cd ISO"&"Emulator
В большинстве случаев вы можно использовать функцию автозаполнения:
cd ISOTab ↹
Недавно я нашел хороший ответ, предоставленный @MartinThornton, который описывает, как привязать PgUp и PgUp к Выберите конкретный результат предложений завершения .
См. также: Как заставить завершение табуляции добавлять косую черту для символических ссылок каталогов?
В отличие от одинарных кавычек, двойные кавычки применимы, когда имя содержит переменную:
cd "$HOME/ISO&Emulator"
Поскольку это система не только для командной строки и установлена графическая среда рабочего стола , вам следует знать о другом способе использования файлов и каталогов из терминал, чьи имена требуют цитирования или иным образом неудобны для ввода: Перетащите значок папки из браузера файлов в тер Минальное окно. В вашей системе файловым браузером является Nautilus, но он работает почти со всеми файловыми браузерами. При этом будет вставлен полный путь к файлу или каталогу, значок которого вы перетащили с автоматическим добавлением правильных кавычек .
Это не полная замена умению заключать в кавычки имена путей (или, на самом деле, любой текст) вы используете методы, описанные в pa4080 , но они чрезвычайно полезны, могут сэкономить вам много времени, а если вам неудобно знать, когда и как цитировать, используя \
, в большинстве эмуляторы графических терминалов - это форма цитирования, которая автоматически применяется, когда вы это делаете, поэтому она вам это продемонстрирует. (В некоторых случаях используются '
'
.)
Если вы не изменили его, оболочка, которую вы получаете, когда открываете окно терминала или входите в виртуальную консоль - это Bash . Целью цитирования в любой оболочке является указание оболочке не обрабатывать определенные символы специально. Вы можете прочитать 3.1.2 Цитирование в справочном руководстве Bash .
Когда вы цитируете вручную, я предлагаю вам предпочесть '
'
(одинарные кавычки) образуют , так как это самый простой и легкий способ заключить в кавычки более нескольких символов текста. Если то, что вы хотите процитировать, само по себе не содержит символа '
, вы можете всегда заключить его в одинарные кавычки, потому что это единственный символ со специальным значением после '
начинает цитирование - это последующий '
, который заканчивается цитированием.
Наконец, вам может быть интересно , что произошло , когда в вашей команде было &
без кавычек.
Это обрабатывает то, что было до него ( cd ISO
), как одну команду, запускает его асинхронно в фоновом режиме и обрабатывает то, что идет после него ( Эмулятор
) в качестве второй команды для запуска (на переднем плане, поскольку после нее не было и
).
[1] 1635
сообщил, что фоновое задание было запущено (оно было задание 1, и его идентификатор процесса оказался 1635). bash: Эмулятор: команда не найдена
сообщил, что не было команды с именем Эмулятор
. bash: cd: ISO: Нет такого файла или каталога
, полученного из фонового задания, чтобы сообщить, что не было каталога ISO
, который нужно изменить. [1] + Exit 1
сообщил работа 1. завершена.