¿Cómo cd a un directorio que contiene un espacio en su nombre?

47

Tengo un directorio llamado "Reader 0.5" en mi escritorio en Mac Os X. Cuando accedo al directorio en la terminal, estoy usando el siguiente código:

cd /Users/niho/Desktop/Reader 0.5

pero arroja:

El fichero o directorio no existe

error.

¿Cómo puedo cd en ese directorio?

Gracias.


fuente

Respuestas:

64

O pone comillas alrededor del nombre del directorio ( cd "/Users/niho/Desktop/Reader 0.5") o escapa del nombre del directorio ( /Users/niho/Desktop/Reader\ 0.5).

joschi
fuente
55
Solo en aras de la exhaustividad, también puede decidir citar solo partes del argumento, como cd /Users/niho/Desktop/"Reader 0.5"o inclusocd /Users/niho/Desktop/Reader" "0.5
user123444555621
3
El último (citas infijadas) era nuevo para mí. ¡Gracias!
joschi
Ahora: ¿cómo ubica la ruta con los espacios infijos en una variable de entorno para que pueda hacerlo % cd $foo?
Bogatyr
8

Puedes escapar del espacio:

cd /Users/niho/Desktop/Reader\ 0.5
Felix
fuente
4

Como otros han mencionado, citar el camino o la barra invertida escapando de los espacios funcionará.

Además, bash, el shell predeterminado en Mac OS X, admite la finalización de la línea de comandos con la tecla Tab. Entonces, por ejemplo, si escribe:

cd /Users/niho/Desktop/Re

luego presione la tecla Tab, el shell completará el resto del nombre de la carpeta (siempre que no haya otras carpetas en su escritorio que comiencen con "Re"), y se encargará de citar los argumentos en cd si hay espacios en el nombre del directorio que completa.

Simon Whitaker
fuente
4

Para su información, el uso del tabulador en el acceso directo bash se rompería en el primer espacio que encuentre si varios directorios tienen nombres idénticos. En tales casos, un usuario tendría que usar:

cd Adobe\ Creative\ Cloud/

o lo que prefiero

cd 'Adobe Creative Cloud'
Ricardo Fernández
fuente
Tanto en bash como en zsh, la cita no funciona para mí: `` `bash 2 => cd '~ / Library /' bash: cd: ~ / Library /: No existe dicho archivo o directorio 3 => cd ~ / Library / 4 => pwd / Users / pguruprasad / Library `` `
Prasanth
-1

Aquí hay una manera más cómoda si desea usar los comandos de CD en ciertos directorios con más frecuencia. Evita escribir el nombre del directorio cada vez.

En su .bashrc o .profile, inserte:

# activate cdable_vars
shopt -s cdable_vars

# define shortcut for your directory, here DIR
export DIR="/Users/<username>/path/to/your/dir"

Ejecute su script una vez: . .bashrc

Entonces puedes cd a tu directorio así:

cd DIR

Esto debería funcionar incluso si la ruta contiene espacios.

Sin embargo, en las secuencias de comandos de shell, debe citar la variable de esta manera:

cd "$DIR"
Frijol ágil
fuente