jak znaleźć plik definiujący alias

22

Mam problem. Nie jestem pewien, jak się poruszać.

Gdzieś w moim systemie mam zdefiniowany alias:

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

Nie jestem pewien, w którym pliku się znajduje, i chcę go zmienić (lub usunąć).

Mógłbym po prostu odblokować to w moim .zshrc, ale to nie jest tak eleganckie rozwiązanie.

Po uruchomieniu alias | grep sublpokazuje mi alias. Czy jest dla mnie sposób, aby echo również wskazywało ścieżkę do pliku definiującego alias?

Dzięki

Ali Samii
źródło
1
Myślę, że jeśli jest tu coś nieeleganckiego , to prawdopodobnie masz tyle plików konfiguracyjnych powłoki, że nie wiesz, gdzie one są. Bez obrazy lub czegokolwiek, ale ... może obejdzie się bez tego, oh, twój zsh - ten "gigant.
mikeserv
1
w każdym razie, może spróbujgrep -R 'alias subl...'
mikeserv

Odpowiedzi:

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

Ta -xopcja powoduje, że zsh wypisuje każde polecenie, które wykonuje na stderr. Każde polecenie wykonane z odczytu pliku ma prefiks z nazwą pliku i linią. Poszukaj definicji aliasu w pliku śledzenia, a dowiesz się, gdzie została zdefiniowana.

Gilles „SO- przestań być zły”
źródło
Sprytny. Ale nawet jeśli mu to pomoże, prawdopodobnie nie ma wystarczająco dużej bandaidy na źródło tego problemu. Chociaż, szczerze mówiąc, czytanie pliku, który się produkuje, może być czymś w rodzaju budzenia.
mikeserv