Lo intenté cd "~/Library/Application Support/"
-bash: cd: ~/Library/Application Support/: No such file or directory
además cd ~/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 "rellenará" el resto de la carpeta para usted, por ejemplo, escriba cd ~/L
Tabrellena, 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
ybind 'set completion-ignore-case on'
hacer que bash sea menos sensible a mayúsculas y minúsculas.El tema central aquí es cómo el shell ( bash ) hace citas y cómo eso afecta la expansión de tilde y la división en "palabras" (argumentos para el programa que se ejecuta).
bash solo trata la tilde principal especialmente si no se cita. Además, no se debe citar la siguiente barra inclinada.
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 comocd foo bar
significa corrercd
con dos argumentos:foo
ybar
. Si solo desea enviar un solofoo bar
argumento, entonces necesita citar el espacio:(por ejemplo)
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/"
versión de prueba termina citando demasiado (la tilde y su barra inclinada), mientras que sucd ~/Library/Application Support/
versión de 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:
También puede usar comillas simples o dobles alrededor del espacio o el espacio y algunos otros bits de ese argumento (¡pero no el
~/
!):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 diversas expansiones y sustituciones en la región citada.
A menudo, puede dejar que el shell haga el trabajo por usted.
Globbing (comodines):
Puede usar
shopt -s nocaseglob
para hacer que las mayúsculas y minúsculas no sean sensibles:Terminación:
Presionar Tabdespués de ingresar
cd ~/L
probablemente lo expandirá acd ~/Library/
.Presionando Tabnuevamente después de ingresar
Ap
(ahora tienecd ~/Library/Ap
) probablemente lo expandirá acd ~/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 terminación no distinga entre mayúsculas y minúsculas:cd ~/l
Tab→cd ~/Library/
;ap
Tab→cd ~/Library/Application\ Support/
fuente
<kbd></kbd>
etiqueta HTML (una de varias etiquetas HTML admitidas en la rebaja SE ).Cuando cita una ruta dos veces, está deteniendo la expansión de tilde. Entonces, hay algunas maneras de hacer esto:
La tilde no se cita aquí, por lo que la expansión de tilde seguirá ejecutándose.
Puede expandir variables de entorno dentro de cadenas entre comillas dobles; esto es básicamente lo que está haciendo la expansión tilde
También puede escapar de caracteres especiales (como el espacio) con una barra diagonal inversa.
fuente
Alternativamente, también puede arrastrar una carpeta a la ventana Terminal, la ruta completa del archivo / carpeta se pegará automáticamente al arrastrar.
fuente
Necesitas escapar del espacio en "
Application Support
"Tratar
$ cd ~/Library/Application\ Support/
fuente
Si las formas normales no funcionan, intente sustituir espacios con
%20
.Esto funcionó para mí cuando se trata de SSH y otros comandos de estilo de dominio como
auto_smb
.fuente
Puede probar esto para carpetas / archivos espaciados si el archivo o el nombre de la carpeta contiene 1) extensión de nombre de archivo, el comando debe ser cd ~ / file \ name.extension / (o) cd ~ / "file name.extension" /
fuente