No bash, posso ir para o meu diretório pessoal com cd ~
e realmente me referir ao meu diretório pessoal com qualquer comando com ~
.
Posso criar novos "aliases de diretório" personalizados (?) Para me referir a outros diretórios? Exemplo hipotético:
make_alias "~~" /mnt/photon/work/foo_project/
cp ~/home.png ~~/set_8/home_4.png
Como isso pode ser feito? Se não pode, é por design e por que?
É bom ter: onde e como ~
é definido e vinculado a esse "~"?
n=/mnt/photon/work/foo_project
e entãocp foo ~n/bar
. (Nota para o OP: também limitado ao zsh).@
ou_
), o que não é possível no bash, enquanto~~
certamente é (hacky, mas possível). Além disso, ele não responde como esse remapeamento é feito.Respostas:
O til não é um alias, faz parte da expansão do shell do bash (exatamente como
*.txt
ou$((1 + 2))
).A expansão do Bash til suporta os seguintes prefixos de til:
dirs
usa a pilha de diretórios. Você pode usarpushd
para adicionar um diretório a ele.Para responder sua pergunta específica sobre
~~
, sim, é possível mapear um diretório para ele. Basta criar um usuário chamado~
e definir/mnt/photon/work/foo_project/
como seu diretório inicial:Obviamente, uma abordagem muito "mais saudável" é apenas definir uma variável do shell que aponta para o seu diretório no seu
~/.bashrc
com o comandoque pode ser acessado via
$foo
, como de costume.fonte