usando ‘&’ en un nombre de directorio

Tengo un nombre de directorio con ISO y emulador con algunos archivos importantes. y este directorio está en una partición diferente, y la partición no se muestra en mi Administrador de archivos (Nautilus). así que monte mi partición y accedo desde la terminal, pero no puedo acceder al directorio por su nombre .

cuando intenté cambiar el directorio:

cd ISO&Emulator 

resultado:

 [1] 1635 bash: Emulator: command not found bash: cd: ISO: No such file or directory [1]+ Exit 1 

es tomar el nombre del directorio como un comando. ¿Alguna forma de acceder a este directorio desde la terminal?

¿Cómo arreglar esto?

Debe citar el nombre del archivo o directorio, que contiene caracteres especiales, cuando lo use:

 cd 'ISO&Emulator' 
 cd "ISO&Emulator" 

O escapar (o citar) sólo el carácter especial:

 cd ISO\&Emulator cd ISO'&'Emulator cd ISO"&"Emulator 

En la mayoría de los casos, puede utilizar la función de autocompletar:

  cd ISO Tab ↹ 
  • Recientemente encontré una buena respuesta, proporcionada por @MartinThornton, que describe cómo unir PgUp y PgUp para seleccionar un resultado particular de las sugerencias de finalización .

  • Ver también: ¿Cómo hacer que la tabulación se complete con una barra inclinada para los enlaces simbólicos del directorio?

A diferencia de las comillas simples, las comillas dobles son aplicables cuando el nombre contiene una variable:

 cd "$HOME/ISO&Emulator" 

Dado que no se trata de un sistema de línea de comandos y se instala un entorno de escritorio gráfico, debe conocer otra forma de usar los archivos y directorios del terminal cuyos nombres requieren comillas o que son complicados de escribir: arrastre el ícono de la carpeta desde su buscador de archivos en la ventana del terminal. En su sistema, el explorador de archivos es Nautilus, pero esto funciona con casi todos los exploradores de archivos. Esto pega la ruta completa del archivo o directorio cuyo ícono arrastró con la cita correcta aplicada automáticamente .

Esto no es un sustituto completo de saber cómo citar rutas de acceso (o, en realidad, cualquier texto) utilizando las técnicas que describe pa4080 , pero es extremadamente útil, puede ahorrarle mucho tiempo y, si no se siente cómodo cuando y cómo cotizar usando \ , en la mayoría de los emuladores de terminales gráficos, esa es la forma de cotización que se aplica automáticamente al hacer esto, por lo que se lo demostrará. (En algunos, ' ' se utilizan.)

A menos que lo haya cambiado, el shell que obtiene al abrir una ventana de terminal o al iniciar sesión en una consola virtual es Bash . El propósito de citar en cualquier shell es decirle a la shell que no trate a ciertos caracteres especialmente. Es posible que desee leer 3.1.2 Cotización en el manual de referencia de Bash .

Cuando cites manualmente, sugiero que prefieras el formulario ' ' (comillas simples) , ya que es la forma más sencilla y fácil de citar más de unos pocos caracteres de texto. Si lo que quiere citar no contiene un ' carácter, entonces siempre puede encerrarlo entre comillas simples, porque el único carácter con un significado especial después de ' comienza a citar es el siguiente ' que termina de citar.


Finalmente, es posible que se esté preguntando qué sucedió cuando tuvo un comillas sin comillas & en su comando.

Esto trató lo que venía antes ( cd ISO ) como un comando, lo ejecutó de forma asíncrona en segundo plano, y trató lo que vino después ( Emulator ) como un segundo comando para ejecutar también (en primer plano, ya que no tenía & después ).

  1. [1] 1635 informó que el trabajo de fondo había comenzado (era el trabajo 1, y su ID de proceso resultó ser 1635).
  2. bash: Emulator: command not found informó que no había un comando llamado Emulator .
  3. El mensaje bash: cd: ISO: No such file or directory se recibió ningún bash: cd: ISO: No such file or directory de este tipo para informar que no había ningún directorio ISO al que cambiar.
  4. [1]+ Exit 1 informó que el trabajo 1 había terminado.