Porque .
é um comando.
É um comando interno do shell, que lê o arquivo nomeado e executa os comandos no processo atual do shell.
O shell Bourne Again também tem source
como sinônimo esse comando. Mas isso é um Bashism (que o shell Bourne Again retirou do C Shell). Embora seja um bashismo que o shell Bourne Again compartilhe com o shell TENEX C, o shell Z e outros (mas não o shell Korn, observe). A Especificação Única UNIX apenas padroniza .
.
Observe também que o comportamento de .
/ source
sutilmente muda dependendo de o shell Bourne Again estar sendo executado no modo compatível com POSIX ou não. (Novamente, isso é como outras conchas, embora seus comportamentos não-padrão não sejam os mesmos. Com o Z Shell, por exemplo, existe um mecanismo de script de shell pré-compilado, e source
difere sutilmente .
no tratamento de caminhos de pesquisa. Os shell .
executarão funções shell, por outro exemplo.)
~/.bashrc
é apenas um dos vários arquivos cujo conteúdo (dependendo de como o processo do shell é chamado) é originado automaticamente na inicialização do shell. Não há nada que proíba a fonte manual . Embora se suas ações não forem idempotentes, você poderá ter algum trabalho de correção posteriormente.
Leitura adicional
.
, você "origina" o arquivo. O que significa que está sendo executado basicamente