Para o &
(ou quase qualquer outro caractere, você tem duas possibilidades simples.
- Coloque aspas simples ao redor da coisa toda:
' -3ab_&_-3dc.img'
- Coloque uma barra invertida antes de cada caractere problemático:
-3ab_\&_-3dc.img
Existem duas exceções:
- O método de cotação única não funciona para uma cotação única. A barra invertida não é especial entre aspas simples, portanto você não pode usá-la diretamente. O que você pode fazer é finalizar a sequência de aspas simples, imediatamente usar barra invertida mais aspas simples e reiniciar a aspa simples. Por exemplo, se o nome do diretório for
foo'bar\qux
:cd 'foo'\''bar\qux'
. Você pode se lembrar dessa forma: dentro de aspas simples,'\''
faz uma única citação. - O método de barra invertida não funciona para novas linhas: a barra invertida-nova linha é simplesmente ignorada. Você precisa colocar aspas simples em uma nova linha.
Você também pode usar aspas duplas, mas é necessário colocar uma barra invertida antes de alguns caracteres. Aspas simples são mais simples.
Há uma dificuldade adicional aqui, que é que o nome do diretório começa com um traço. Esse caractere informa o comando cd
(como quase todos os comandos) que uma opção segue. O traço não é especial para o shell, apenas para o comando, portanto, as cotações não afetarão isso. Você tem duas maneiras de passar um argumento que começa com um traço para um comando sem que seja interpretado como uma opção:
- Encontre outra maneira de expressar esse argumento. Para um nome de arquivo, adicionar
./
na frente ainda designa o mesmo arquivo. - Coloque o argumento
--
antes. Isso diz ao comando para parar de procurar opções.
Então, aqui estão algumas maneiras de mudar para este subdiretório:
cd -- '-3ab_&_-3dc.img'
cd -- -3ab_\&_-3dc.img
cd ./-3ab_\&_-3dc.img
cd './-3ab_&_-3dc.img'