wie man eine Datei findet, die einen Alias ​​definiert

21

Ich habe ein Problem und bin mir nicht sicher, wie ich mich fortbewegen soll.

Irgendwo auf meinem System habe ich einen Alias ​​als solchen definiert:

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

Ich bin nicht sicher, in welcher Datei sich diese befindet, und ich möchte sie ändern (oder tatsächlich entfernen).

Ich könnte es einfach in meinem .zshrc unalias, aber das ist keine so elegante Lösung.

Wenn ich renne alias | grep subl, wird mir der Alias ​​angezeigt. Gibt es eine Möglichkeit, den Pfad zu der Datei, die den Alias ​​definiert, wiederzugeben?

Vielen Dank

Ali Samii
quelle
1
Ich denke, wenn es hier etwas Unelegantes gibt, ist es wahrscheinlich, dass Sie so viele Shell-Konfigurationsdateien haben, dass Sie nicht wissen, wo sie sind. Nichts für ungut oder so, aber ... vielleicht verzichten Sie darauf, oh du - das ist ein riesen Mann.
mikeserv
1
grep -R 'alias subl...'
Wie auch immer

Antworten:

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

Die -xOption veranlasst zsh, jeden Befehl, den es auf stderr ausführt, auszudrucken. Jeder Befehl, der beim Lesen einer Datei ausgeführt wurde, hat ein Präfix mit dem Dateinamen und der Zeile. Suchen Sie in der Trace-Datei nach der Alias-Definition, und Sie wissen, wo sie definiert wurde.

Gilles 'SO - hör auf böse zu sein'
quelle
Klug. Aber selbst wenn es ihm hier hilft, gibt es wahrscheinlich nicht genug Pflaster für die Ursache dieses Problems. ' Um ehrlich zu sein, könnte das Durchlesen der erzeugten Datei auch ein Weckruf sein.
mikeserv