124 votos

¿Cómo se puede grabar en un directorio con un nombre que contiene espacios en bash?

Lo intenté. cd "~/Library/Application Support/" -bash: cd: ~/Library/Application Support/: No such file or directory

también cd ~/Library/Application Support/ -bash: cd: ~/Library/Application Support/: No such file or directory

164voto

steveverrill Puntos 1090

Puedes usar el tab después de pulsar los primeros caracteres (esto entonces "rellenará" el resto de la carpeta para ti, por ejemplo, escribe cd ~/L <tab> rellena el cd ~/Librería/ luego escribe Ap <tab> y te rellenará el resto.

Si hay un espacio entre las palabras y no quieres usar los métodos anteriores, pon una barra invertida antes del espacio. cd ~/Library/Application\ Support

Espero que esto ayude

34voto

Nip Puntos 362

El tema central aquí es cómo la cáscara ( bash ) hace citas y cómo eso afecta a la expansión de la tilde y la división en "palabras" (argumentos para el programa que se está ejecutando).

bash sólo trata el tilde principal especialmente si no está citado. Además, la siguiente barra tampoco debe ser citada.

Al mismo tiempo, bash analiza las líneas de comando en "palabras" basadas en espacios en blanco no citados. El cd típicamente requiere exactamente un argumento (el directorio de destino). Una línea de comando como cd foo bar significa correr cd con dos argumentos: foo y bar . Si sólo quisieras enviar una sola foo bar argumento, entonces necesitas citar el espacio:
(por ejemplo) cd foo\ bar (véase más ejemplos de citas a continuación).

En su situación particular, debe dejar la tilde y la siguiente barra sin citar mientras cita el espacio en el nombre del directorio. Su cd "~/Library/Application Support/" juicio termina citando demasiado (la tilde y su barra), mientras que su cd ~/Library/Application Support/ El juicio cita muy poco (omite citar el espacio en el nombre del directorio).

La solución más común es usar la fuga de un solo personaje para citar sólo el espacio:

    cd ~/Library/Application\ Support

También puedes usar comillas simples o dobles alrededor del espacio o el espacio y algunos otros bits de ese argumento (pero no el ~/ !):

    cd ~/Library/Application' 'Support
    cd ~/Library/Application" "Support
    cd ~/Library/App'lication 'Support
    cd ~/Library/Application" Supp"ort
    cd ~/'Library/Application 'Support
    cd ~/"Library/Application "Support

Este tipo de citas tienen diferentes significados, pero son idénticas en estos ejemplos. Las comillas simples protegen las cadenas literales mientras que las comillas dobles permiten varias expansiones y sustituciones en la región citada.

A menudo, puedes dejar que la cáscara haga el trabajo por ti.

  • Globbing (comodines):

    cd ~/L*/Ap*

    Puedes usar shopt -s nocaseglob para hacer el caso de Globbing insensible:

    cd ~/l*/ap*
  • Completar:

    Presionando Tab después de entrar cd ~/L probablemente lo expandirá a cd ~/Library/ .
    Presionando Tab de nuevo después de entrar Ap (ahora tienes cd ~/Library/Ap ) probablemente lo ampliará a cd ~/Library/Application\ Support/ (el proyectil insertó automáticamente la barra invertida que se escapaba).

    Puedes usar bind 'set completion-ignore-case on' para hacer que el caso de terminación sea insensible:

    cd ~/l Tabcd ~/Library/ ; ap Tabcd ~/Library/Application\ Support/

14voto

Brendan Long Puntos 270

Cuando se cita doblemente un camino, se detiene la expansión de la tilde. Así que hay algunas maneras de hacer esto:

cd ~/"My Code"
cd ~/'My Code'

El tilde no se cita aquí, por lo que la expansión del tilde todavía se llevará a cabo.

cd "$HOME/My Code"

Puedes expandir las variables de entorno dentro de las cadenas de doble comilla; esto es básicamente lo que la expansión de la tilde está haciendo

cd ~/My\ Code

También puedes escapar de los personajes especiales (como el espacio) con una barra invertida.

9voto

Psychic2k Puntos 41

También puede arrastrar una carpeta a la ventana de la Terminal, la ruta completa del archivo/carpeta se pegará en la posición del cursor.

4voto

EndangeredMassa Puntos 9532

Necesitas escapar del espacio en " Application Support "

Pruebe $ cd ~/Library/Application\ Support/

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X