En bash puedo ir a mi directorio de inicio con cd ~
y realmente referirme a mi directorio de inicio con cualquier comando con ~
.
¿Puedo hacer nuevos "alias de directorio" personalizados (?) Para referirme a otros directorios? Ejemplo hipotético:
make_alias "~~" /mnt/photon/work/foo_project/
cp ~/home.png ~~/set_8/home_4.png
¿Cómo se puede hacer, si es así? Si no puede, ¿es por diseño y por qué?
Es bueno tener: ¿Dónde y cómo ~
se establece y se vincula a este "~"?
n=/mnt/photon/work/foo_project
y luegocp foo ~n/bar
. (Nota para el OP: también limitado a zsh).@
o_
), que no es posible en bash, mientras que~~
ciertamente es (hacky, pero posible). Además, no responde cómo se realiza esta reasignación.Respuestas:
La tilde no es un alias, es parte de la expansión de shell de bash (al igual que
*.txt
o$((1 + 2))
).La expansión bash tilde admite los siguientes prefijos tilde:
dirs
usa la pila de directorios. Puede usarpushd
para agregarle un directorio.Para responder a su pregunta específica sobre
~~
, sí, es posible asignarle un directorio. Simplemente cree un usuario llamado~
y configúrelo/mnt/photon/work/foo_project/
como su directorio de inicio:Por supuesto, un enfoque mucho más "sensato" es solo definir una variable de shell que apunte a su directorio
~/.bashrc
con el comandoque se puede acceder a través de
$foo
, como de costumbre.fuente