Прежде всего, функция может быть определена без ключевого слова function
поэтому лучший поиск будет
grep 'cp()' .*
Это будет искать через файлы, такие как .zshrc
и .profile
и еще много чего. Если это ничего не находит, вы также можете просмотреть различные файлы, загруженные zsh
. Они перечислены в самом конце man zsh
:
FILES
$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
${TMPPREFIX}* (default is /tmp/zsh*)
/etc/zsh/zshenv
/etc/zsh/zprofile
/etc/zsh/zshrc
/etc/zsh/zlogin
/etc/zsh/zlogout (installation-specific - /etc is the default)
По умолчанию $ZDOTDIR
должен быть вашим $HOME
. Итак, эта команда должна найти ваш файл-нарушитель:
grep 'cp()\|cp ()' ~/.zshenv ~/.zprofile ~/.zshrc ~/.zlogin /etc/zsh/zshenv \
/etc/zsh/zprofile /etc/zsh/zshrc /etc/zsh/zlogin
Я добавил \|
так как вы можете также иметь пробелы между именем функции и самой функцией. Наконец, @Dennis указывает, что скобки также могут быть опущены, если вы используете ключевое слово function
. Итак, чтобы быть еще более безопасным, сделайте это:
grep -E 'function cp|cp *\(\)' ~/.zshenv ~/.zprofile ~/.zshrc ~/.zlogin \
/etc/zsh/zshenv /etc/zsh/zprofile /etc/zsh/zshrc /etc/zsh/zlogin