Отличное решение @ 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
будет намного быстрее, так как он использует уже существующую базу данных, но не будет работать, если команда была установлена совсем недавно.