Recentemente mudei de bash para zsh. No bash, usei o alias de ponto .
para o comando source, por exemplo
. .bashrc
Funcionou com . .bashrc
, . ~/.bashrc
, . ./.bashrc
.
No entanto, com zsh, o alias de ponto não funciona da mesma maneira. Ele só funciona com um caminho para o arquivo. Mas não se eu usar um arquivo sem caminho:
Isso não funciona:
. .zshrc
Me daria este erro:.: no such file or directory: .zshrc
Mas todos estes funcionam:
source .zshrc
. ./.zshrc
. ~/.zshrc
Na verdade, esse é o comportamento padrão do comando dot: ele usa uma pesquisa $PATH, assim como ao executar comandos – não um caminho relativo regular. Assim, você pode ter suas bibliotecas comuns em, por exemplo, ~/bin/ e simplesmente carregá-las
. libwhatever.sh
de qualquer diretório.A execução de uma pesquisa de caminho relativo direto é uma extensão Bash fora do padrão.
(Da mesma forma, dot
.
é na verdade o comando principal listado no padrão "shell language" esource
é um alias específico do shell - e não o contrário.)