「エイリアス」が定義されたファイルを見つける方法は?

「エイリアス」が定義されたファイルを見つける方法は?

コマンドを実行するとaliasエイリアスが表示されますが、それが定義されている場所がわかりません(つまり、エイリアス定義を含むファイルが見つかりません)。/etc/profile、、、、、、および他のいくつかを確認しましたが、~/.bashrc役に立ちません。~/.profile~/.bash_profile~/.bash_login/etc/bash.bashrc

aliasコマンドが情報を取得するファイルを見つける方法はありますか?このコマンドはどのようにalias機能しますか?エイリアス定義を見つけるために所定のファイルを読みますか?

ベストアンサー1

~に沿ってStéphaneの同様の答え、これはトレースモード(シングルコマンド実行)で対話型bashシェルを実行する方法で、sumコマンドのみを表示するgrepにパイプされます。exit興味のあるコマンドの隣には、別名コマンドを含むファイルが必要です。sourcealiassourcealias

bash -ix -c exit 2>&1 | grep -E 'source | \. |alias '

計測実行:

$ tail -1 ~/.bashrc
[ -f /tmp/a.bashrc ] && source /tmp/a.bashrc
$ cat /tmp/a.bashrc
[ -f /tmp/b.bashrc ] && . /tmp/b.bashrc
$ cat /tmp/b.bashrc
alias answer='echo 42'

$ bash -ix -c exit 2>&1 | grep -E 'source | \. |alias '
+ alias 'ls=ls --color=auto'
+ source /tmp/a.bashrc
++ . /tmp/b.bashrc
+++ alias 'answer=echo 42'

おすすめ記事