Отличное решение @ icarus работает для функций, если они определены буквально, а не как результат evalсодержимого другого файла (в котором файл с символом evalбудет отображаться как источник). Он не будет печатать исходный файл с псевдонимами, встроенными модулями оболочки (например echo) и исполняемыми файлами (двоичными или нет), и я считаю, что эта информация вообще недоступна. Некоторые команды могут печатать свои исходные файлы (и даже могут быть правдивыми об этом), либо в ходе обычного выполнения, либо в ответ на сигнал.
__git_ps1определяется в моей системе Arch Linux /usr/share/git/git-prompt.shи /usr/share/git/completion/git-prompt.shв моей системе, поэтому она может быть одинаковой для вас.
Взгляните на раздел « Вызов », man bashесли вы хотите найти команды, специально созданные в начале оболочки - они могут получать другие файлы, которые, в свою очередь, являются источником других файлов.
$PATH, тоtypeработать не будет. Вы можете попробовать просто использоватьfindилиlocate.locateбудет намного быстрее, так как он использует уже существующую базу данных, но не будет работать, если команда была установлена совсем недавно.