Cómo cd a un directory con un nombre que contiene espacios en bash?

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

  • el script de shell da el error [:! -z: el operador unario esperado mientras se ejecuta
  • No se puede formatear pendrive, error diskutil
  • Terminal desconocido 'xterm-256color'
  • ¿Es posible hacer que el background del terminal esté en vivo?
  • ¿Cómo cambiar el nombre de osascript en el dialog de privilegios de administrador?
  • Cambiar styles de terminal en iTerm 2
  • Cambiar la label en la unidad USB en el terminal OSX
  • ¿Cómo puedo determinar las opciones de time de compilation de PHP?
  • ¿Hay un atajo de keyboard para mover el cursor una palabra a la vez en la Terminal?
  • Cambiar el sonido de alerta pnetworkingeterminado del terminal en Mac OSX
  • Asociar controller de protocolo en Mac OS X
  • Ver statistics del hardware del portátil
  • 10 Solutions collect form web for “Cómo cd a un directory con un nombre que contiene espacios en bash?”

    Puede usar la tecla Tab luego de presionar los primeros caracteres (esto luego "completará" el rest de la carpeta para usted, por ejemplo, escriba cd ~/L Tab rellena el cd ~/Library/ luego escriba Ap Tab y lo completará el rest para ti

    Si hay un espacio entre las palabras y no desea utilizar los methods anteriores, coloque una \ (barra invertida) antes del espacio, por ejemplo, cd ~/Library/Application\ Support .

    El problema principal aquí es cómo el intérprete de órdenes ( bash ) hace citas y cómo eso afecta la expansión de tilde y la split en "palabras" (arguments para el progtwig que se está ejecutando).

    bash solo trata a la tilde líder especialmente si no se cita. Además, la barra oblicua siguiente tampoco se debe citar.

    Al mismo time, bash analiza las líneas de command en "palabras" basadas en espacios en blanco no citados. El command cd generalmente requiere exactamente un argumento (el directory de destino). Una línea de command como cd foo bar significa ejecutar cd con dos arguments: foo y bar . Si solo desea enviar un único argumento de la foo bar , debe citar el espacio:
    (por ejemplo) cd foo\ bar (ver más ejemplos de citas a continuación).

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

    La solución más común es usar escapes de un solo carácter para citar solo el espacio:

      cd ~/Library/Application\ Support 

    También puede usar comillas simples o dobles alnetworkingedor 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énticos en estos ejemplos. Las comillas simples protegen cadenas literales mientras que las comillas dobles permiten varias expansiones y sustituciones en la región citada.

    A menudo, puedes dejar que el caparazón haga el trabajo por ti.

    • Globo (comodines):

       cd ~/L*/Ap* 

      Puede usar shopt -s nocaseglob para que la globbing case no sea sensible:

       cd ~/l*/ap* 
    • Terminación:

      Al presionar Tab después de ingresar cd ~/L , probablemente se expandirá a cd ~/Library/ .
      Al presionar Tab de nuevo después de ingresar Ap (ahora tiene cd ~/Library/Ap ), probablemente lo expandirá a cd ~/Library/Application\ Support/ (el shell insertó automáticamente la barra invertida de escape).

      Puede usar bind 'set completion-ignore-case on' para que la finalización no sea sensible a mayúsculas y minúsculas:

      cd ~/l Tabcd ~/Library/ ; ap Pestañacd ~/Library/Application\ Support/

    Cuando cite una ruta doble, está deteniendo la expansión de la tilde. Entonces hay algunas maneras de hacer esto:

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

    La tilde no se cita aquí, por lo que la expansión de tilde seguirá ejecutándose.

     cd "$HOME/My Code" 

    Puede expandir variables de entorno dentro de cadenas de comillas dobles; esto es básicamente lo que está haciendo la expansión tilde

     cd ~/My\ Code 

    También puede escaping caracteres especiales (como espacio) con una barra diagonal inversa.

    También puede arrastrar una carpeta a la window del Terminal, la ruta completa del file / carpeta se pegará automáticamente al arrastrar.

    Debes escaping del espacio en " Application Support "

    Pruebe $ cd ~/Library/Application\ Support/

    Si las forms normales no funcionan, intente sustituir espacios con %20 .

    Esto funcionó para mí cuando se trata de SSH y otros commands de estilo de dominio como auto_smb .

    Puede intentar esto para carpetas / files espaciados por Si el nombre del file o carpeta contiene 1) nombre del file.extensión el command debe ser cd ~ / file \ name.extension / (o) cd ~ / "file name.extension" /

    cd 'iTunes Media' debería funcionar. probé

    Simple

    Ejemplo: Application Support es un directory

    entonces

    Aplicación de cd \ Support

    La mejor manera de acceder a cualquier carpeta que tenga espacios es, escriba cd "Nueva carpeta" si tiene el nombre de la carpeta como "Nueva carpeta".

    Tushar 🙂

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).