Ответы:
Для &
(или почти любого другого персонажа у вас есть две простые возможности).
' -3ab_&_-3dc.img'
-3ab_\&_-3dc.img
Есть два исключения:
foo'bar\qux
: cd 'foo'\''bar\qux'
. Вы можете помнить это так: внутри одинарных кавычек, '\''
вы получите одинарную кавычку.Вы также можете использовать двойные кавычки, но затем вам нужно поставить обратную косую черту перед некоторыми символами. Одиночные кавычки более просты.
Здесь есть дополнительная сложность, которая заключается в том, что имя каталога начинается с тире. Этот символ сообщает cd
команде (как почти каждая команда), что опция следует. Тире не является особенным для оболочки, только для команды, поэтому кавычки на нее не влияют. У вас есть два способа передачи аргумента, начинающегося с тире, в команду без интерпретации его как опции:
./
перед все еще обозначает тот же файл.--
раньше. Это говорит команде прекратить поиск вариантов.Итак, вот несколько способов, которыми вы можете перейти в этот подкаталог:
cd -- '-3ab_&_-3dc.img'
cd -- -3ab_\&_-3dc.img
cd ./-3ab_\&_-3dc.img
cd './-3ab_&_-3dc.img'
Амперсанду нужно экранировать, но проблема, скорее всего, в том, что вы сталкиваетесь с лидером -
, а не с амперсандом. Ведущий -
заставил CD подумать, что вы передаете варианты. Вы можете обойти это, используя ./
:
cd './-3ab_&_-3dc.img'
&
определенно проблема. Что касается -
, это зависит от оболочки. Zsh очень доволен cd
каталогом, начинающимся с -
. Однако Баш не является.