cara menemukan file yang mendefinisikan alias

22

Saya memiliki masalah, saya tidak yakin bagaimana cara untuk berkeliling.

Di suatu tempat di sistem saya, saya memiliki alias yang didefinisikan seperti itu:

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

Saya tidak yakin file apa ini, dan saya ingin mengubah (atau benar-benar menghapus) itu.

Saya hanya bisa unalias di .zshrc saya, tapi itu bukan solusi yang elegan.

Ketika saya menjalankannya alias | grep sublmenunjukkan saya alias. Apakah ada cara bagi saya untuk memilikinya juga gema path ke file yang mendefinisikan alias?

Terima kasih

Ali Samii
sumber
1
Saya berpikir bahwa jika ada sesuatu yang tidak berlaku di sini mungkin Anda memiliki begitu banyak file konfigurasi shell yang Anda tidak tahu di mana mereka. Jangan tersinggung atau apa pun, tapi .... mungkin lakukan tanpa itu oh zsh Anda - itu seorang pria raksasa.
mikeserv
1
lagi pula, mungkin cobagrep -R 'alias subl...'
mikeserv

Jawaban:

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

The -xPenyebab pilihan zsh untuk mencetak setiap perintah yang dijalankan pada stderr. Perintah apa pun yang dijalankan dari membaca file memiliki awalan dengan nama file dan baris. Jadi cari definisi alias dalam file jejak dan Anda akan tahu di mana itu didefinisikan.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Pintar. Tetapi bahkan jika itu membantunya di sini, mungkin tidak ada bandaid yang cukup besar untuk sumber masalah ini. ' Padahal, dalam kejujuran, membaca file yang menghasilkan mungkin sesuatu panggilan bangun juga.
mikeserv