Para el &
(o casi cualquier otro personaje, tienes dos posibilidades simples.
- Pon comillas simples alrededor de todo:
' -3ab_&_-3dc.img'
- Ponga una barra diagonal inversa antes de cada personaje problemático:
-3ab_\&_-3dc.img
Hay dos excepciones:
- El método de comillas simples no funciona para una comilla simple. La barra diagonal inversa no es especial entre comillas simples, por lo que tampoco puede usarla directamente. Lo que puede hacer es finalizar la cadena entre comillas simples, usar inmediatamente la barra diagonal inversa más la comilla simple y reiniciar la comilla simple. Así, por ejemplo, si el nombre del directorio es
foo'bar\qux
: cd 'foo'\''bar\qux'
. Puedes recordarlo de esa manera: dentro de comillas simples, '\''
obtienes una sola cita.
- El método de barra diagonal inversa no funciona para las nuevas líneas: simplemente se ignora la barra diagonal inversa. Debe poner comillas simples alrededor de una nueva línea.
También puede usar comillas dobles, pero luego debe poner una barra diagonal inversa antes de algunos caracteres. Las comillas simples son más sencillas.
Aquí hay una dificultad adicional, que es que el nombre del directorio comienza con un guión. Ese personaje le dice al cd
comando (como casi todos los comandos) que sigue una opción. El guión no es especial para el shell, solo para el comando, por lo que las comillas no lo afectarán. Tiene dos formas de pasar un argumento que comienza con un guión a un comando sin que se interprete como una opción:
- Encuentre otra forma de expresar este argumento. Para un nombre de archivo, agregar
./
al frente todavía designa el mismo archivo.
- Pon el argumento
--
antes. Eso le dice al comando que deje de buscar opciones.
Aquí hay algunas formas en que puede cambiar a este subdirectorio:
cd -- '-3ab_&_-3dc.img'
cd -- -3ab_\&_-3dc.img
cd ./-3ab_\&_-3dc.img
cd './-3ab_&_-3dc.img'