Probé 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
Probé 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
Puede usar la tecla Tabulación después de presionar los primeros caracteres (esto "rellenará" el resto de la carpeta, por ejemplo, escriba cd ~/L
Tabulación rellena cd ~/Library/
y luego escribe Ap
Tabulación y completará el resto por ti.
Si hay un espacio entre las palabras y no desea utilizar los métodos anteriores, coloque un \
(barra invertida) antes del espacio, por ejemplo. cd ~/Library/Application\ Support
.
El problema principal aquí es cómo el shell ( bash ) hace citas y cómo eso afecta la expansión de la tilde y la división en "palabras" (argumentos para el programa que se está ejecutando).
bash solo trata la tilde principal especialmente si no se cita. Además, la barra diagonal siguiente tampoco debe ser citada.
Al mismo tiempo, bash analiza las líneas de comando en "palabras" basadas en espacios en blanco sin comillas. El comando cd
generalmente requiere exactamente un argumento (el directorio de destino). Una línea de comando como cd foo bar
significa ejecutar cd
con dos argumentos: foo
y bar
. Si solo desea enviar un único argumento foo bar
, entonces debe citar el espacio:
(por ejemplo) cd foo\ bar
(ver más ejemplos de citaciones a continuación).
En su situación particular, debe dejar la tilde y la siguiente barra sin comillas mientras cita el espacio en el nombre del directorio. Su prueba de cd "~/Library/Application Support/"
termina citando demasiado (la tilde y su barra), mientras que su prueba de cd ~/Library/Application Support/
cita muy poco (omite la cita del espacio en el nombre del directorio).
La solución más común es utilizar el escape de un solo carácter para citar solo 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énticos 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 el shell haga el trabajo por ti.
Globbing (comodines):
cd ~/L*/Ap*
Puedes usar shopt -s nocaseglob
para hacer que el globbing no distinga mayúsculas y minúsculas:
cd ~/l*/ap*
Finalización:
Al presionar Tabulación después de ingresar cd ~/L
probablemente se expandirá a cd ~/Library/
.
Al presionar Tabulación nuevamente después de ingresar Ap
(ahora tienes cd ~/Library/Ap
) probablemente lo expandirás a cd ~/Library/Application\ Support/
(el shell insertó automáticamente la barra invertida que se escapa).
Puede usar bind 'set completion-ignore-case on'
para hacer que la finalización no distinga entre mayúsculas y minúsculas:
cd ~/l
Tabulación → cd ~/Library/
; ap
Tabulación → cd ~/Library/Application\ Support/
Cuando cita dos veces una ruta, está deteniendo la expansión de tilde. Así que 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 la tilde se seguirá ejecutando.
cd "$HOME/My Code"
Puede expandir las variables de entorno dentro de cadenas entre comillas dobles; esto es básicamente lo que está haciendo la expansión de tilde
cd ~/My\ Code
También puedes escapar de caracteres especiales (como el espacio) con una barra invertida.
Alternativamente, también puede arrastrar una carpeta a la ventana del Terminal, la ruta completa del archivo / carpeta se pegará automáticamente al arrastrar.
Debes escapar del espacio en " Application Support
"
Prueba $ cd ~/Library/Application\ Support/
Si las formas normales no funcionan, intente sustituir espacios con %20
.
Esto me funcionó al tratar con SSH y otros comandos de estilo de dominio como auto_smb
.
Puede probar esto para carpetas / archivos separados por Si el nombre del archivo o carpeta contiene 1) nombre de archivo. Extensión el comando debe ser cd ~ / file \ name.extension / (or) cd ~ / "file name.extension" /
Lea otras preguntas en las etiquetas terminal