Потому что . это команда.
Это встроенная команда оболочки, которая читает указанный файл и выполняет команды в нем в текущем процессе оболочки.
Оболочка Bourne Again также имеет source в качестве синонима этой команды.  Но это Bashism (который оболочка Bourne Again взяла из C Shell).  Хотя это Bashism, который оболочка Bourne Again разделяет с оболочкой TENEX C, Z Shell и другими (но не оболочкой Korn, обратите внимание).  Единственная спецификация UNIX только стандартизирует . ,  
Также обратите внимание, что поведение ./source слегка изменяется в зависимости от того, запущена ли оболочка Bourne Again в POSIX-совместимом режиме или нет.  (Опять же, это похоже на другие оболочки, хотя их нестандартное поведение отличается от поведения друг друга.  Например, в Z Shell есть предварительно скомпилированный механизм сценариев оболочки, и source немного отличается от исходного . в его обработке пути поиска.  Скорлупа корна . будет запускать функции оболочки, для другого примера.)
~/.bashrc - это всего лишь один из нескольких файлов, содержимое которых (в зависимости от того, как вызывается процесс оболочки) автоматически получается при запуске оболочки.  Там нет ничего, что запрещает его вручную .  Хотя, если его действия не являются идемпотентными, возможно, вам придется поработать над исправлением.  
дальнейшее чтение