O til não é um alias, é parte da expansão do shell do bash (assim como *.txt
ou $((1 + 2))
).
Expansão do til de Bash suporta os seguintes prefixos de til :
~ The value of $HOME
~/foo $HOME/foo
~fred/foo The subdirectory foo of the home directory of the user fred
~+/foo $PWD/foo
~-/foo ${OLDPWD-'~-'}/foo
~N The string that would be displayed by 'dirs +N'
~+N The string that would be displayed by 'dirs +N'
~-N The string that would be displayed by 'dirs -N'
dirs
usa a pilha de diretórios. Você pode usar pushd
para adicionar um diretório a ele.
Para responder à sua pergunta específica sobre ~~
, sim, é possível mapear um diretório para ela. Basta criar um usuário chamado ~
e definir /mnt/photon/work/foo_project/
como seu diretório inicial:
sudo useradd '~'
sudo sed -i 's#:/home/~:[^:]*$#:/mnt/photon/work/foo_project:/bin/false#' /etc/passwd
Naturalmente, uma abordagem muito mais "saudável" é apenas definir uma variável de shell que aponta para o seu diretório em ~/.bashrc
com o comando
foo=/mnt/photon/work/foo_project
, que pode ser acessado via $foo
, como de costume.