Lo intentécd "~/Library/Application Support/" -bash: cd: ~/Library/Application Support/: No such file or directory
ademáscd ~/Library/Application Support/ -bash: cd: ~/Library/Application Support/: No such file or directory
Puede usar la Tabtecla después de presionar los primeros caracteres (esto luego "completará" el resto de la carpeta por usted, por ejemplo, escriba completa cd ~/L
Taby cd ~/Library/
luego escriba Ap
Taby completará el resto por usted.
Si hay un espacio entre las palabras y no desea utilizar los métodos anteriores, coloque una \
(barra invertida) antes del espacio, por ejemplo, cd ~/Library/Application\ Support
.
shopt -s nocaseglob
y bind 'set completion-ignore-case on'
para hacer que bash sea menos sensible al caso.El problema central aquí es cómo el shell ( bash ) cita 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 inicial de forma especial si no está entrecomillada. Además, la siguiente barra tampoco debe citarse.
Al mismo tiempo, bash analiza las líneas de comando en "palabras" basadas en espacios en blanco sin comillas. El cd
comando generalmente requiere exactamente un argumento (el directorio de destino). Una línea de comando como cd foo bar
medios para ejecutar cd
con dos argumentos: foo
y bar
. Si solo desea enviar un solo foo bar
argumento, debe citar el espacio:
(p. ej.) cd foo\ bar
(vea más ejemplos de citas 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 cd "~/Library/Application Support/"
prueba termina citando demasiado (la tilde y su barra inclinada), mientras que su cd ~/Library/Application Support/
prueba cita muy poco (omite citar el espacio en el nombre del directorio).
La solución más común es usar el escape de un solo carácter para citar solo el espacio:
cd ~/Library/Application\ Support
También puede usar comillas simples o dobles alrededor del espacio o el espacio y algunas otras partes 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 cadenas literales, mientras que las comillas dobles permiten varias expansiones y sustituciones en la región citada.
A menudo, puede dejar que el shell haga el trabajo por usted.
Globbing (comodines):
cd ~/L*/Ap*
Puede usar shopt -s nocaseglob
para hacer que globbing no distinga entre mayúsculas y minúsculas:
cd ~/l*/ap*
Terminación:
Presionar Tabdespués de ingresar cd ~/L
probablemente lo expandirá a cd ~/Library/
.
Presionar Tabnuevamente 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 hacer que la finalización no distinga entre mayúsculas y minúsculas:
cd ~/l
Tab→ cd ~/Library/
; ap
Tab→cd ~/Library/Application\ Support/
<kbd></kbd>
etiqueta HTML (una de varias etiquetas HTML admitidas en SE markdown ).Cuando comillas dobles una ruta, estás deteniendo la expansión de la tilde. Así que hay algunas maneras de hacer esto:
cd ~/"My Code"
cd ~/'My Code'
La tilde no se cita aquí, por lo que aún se ejecutará la expansión de la tilde.
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 tilde
cd ~/My\ Code
También puede escapar caracteres especiales (como el espacio) con una barra invertida.
Alternativamente, también puede arrastrar una carpeta a la ventana de Terminal, la ruta completa del archivo/carpeta se pegará automáticamente al arrastrar.
Necesitas escapar del espacio en " Application Support
"
Tratar$ cd ~/Library/Application\ Support/
Puede probar esto para carpetas/archivos espaciados si el nombre del archivo o la carpeta contiene 1) nombre de archivo.extensión, el comando debe ser cd ~/archivo\ nombre.extensión/ (o) cd ~/"nombre de archivo.extensión"/
Si las formas normales no funcionan, intente sustituir los espacios con %20
.
Esto funcionó para mí al tratar con SSH y otros comandos de estilo de dominio como auto_smb
.
Ómer
\
-> para el nombre del directorio:test one
-> debe escribircd test\ one