エイリアスを定義するファイルを見つける方法


21

問題が発生しているので、どうやって回避するかわかりません。

私のシステムのどこかに、そのように定義されたエイリアスがあります:

alias subl=\''/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl'\'

これがどのファイルにあるかわからないので、変更(または実際に削除)します。

.zshrcでエイリアスを解除することはできますが、それはエレガントなソリューションではありません。

実行するalias | grep sublと、エイリアスが表示されます。エイリアスを定義するファイルへのパスもエコーする方法はありますか?

ありがとう


1
ここに何か不適切なものがある場合は、シェル構成ファイルが非常に多く、どこにあるかわからない可能性が高いと思います。攻撃も何もありませんが、....多分それなしであなたのzshをします-それは巨大な男です。
mikeserv 14

1
とにかく、多分してみてくださいgrep -R 'alias subl...'
mikeserv

回答:


26
zsh -x 2>zsh.trace
exit
grep 'alias.*subl' zsh.trace

この-xオプションにより、zshはstderrで実行するすべてのコマンドを出力します。ファイルの読み取りから実行されたコマンドには、ファイル名と行のプレフィックスが付いています。そのため、トレースファイルでエイリアス定義を探してください。エイリアス定義がどこで定義されているかがわかります。


賢い。しかし、それがここで彼を助けたとしても、おそらくこの問題の原因に十分なほど大きな絆創膏はないでしょう。」ただし、正直なところ、生成されるファイルを読み取ることは、ウェイクアップコールのようなものかもしれません。
mikeserv 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.