Com o primeiro método você não está criando um alias, você está criando um symlink. Os links simbólicos são curtos para links simbólicos:
Links simbólicos são arquivos que funcionam como ponteiros para outros arquivos. [...] UMA link simbólico é um tipo especial de arquivo cujo conteúdo é uma string que é o nome do caminho outro arquivo, o arquivo a que o link se refere. Em outro palavras, um link simbólico é um ponteiro para outro nome, e não a um subjacente objeto.
Leia mais sobre links simbólicos aqui e aqui .
Somente com o segundo método você está, na verdade, criando um alias.
Aliases permitem que uma string seja substituída por uma palavra quando é usada como a primeira palavra de um comando simples. O shell mantém uma lista de aliases que pode ser definido e não definido com o comandos internos alias e unalias (veja COMANDOS DE SHELL BUILTIN abaixo). A primeira palavra de cada simples o comando, se não estiver marcado, é marcado para veja se tem um alias. Se sim, isso palavra é substituído pelo texto da alias.
Você pode definir um alias em qualquer lugar onde você pode digitar um comando e ter o shell ( bash neste caso) interpretá-lo, porém para que o alias esteja disponível em outros shells ele precisa ser definido em um arquivo que é interpretado pelo shell na inicialização (inicialização do shell, não inicialização do computador).
Por bash, estes são /etc/bash.bashrc
(todo o sistema) e ~/.bashrc
. Esses arquivos são interpretados quando o shell é iniciado no modo interativo (como quando se usa Terminal
). Não vou mencionar os arquivos de perfil porque eles servem a um propósito diferente.
Então, você quer adicionar seus aliases a ~/.bashrc
para disponibilizá-los em todos os shell interativos.
O método .bash_aliases
realiza exatamente a mesma coisa que colocar os aliases em ~/.bashrc
, mas tem o benefício adicional de ser mais fácil de ser analisado e manipulado por programas.
O . ~/.bash_aliases
significa origem (carga) _~/.bash_aliases_
no contexto do shell atualmente em execução.