1

Когда я вызываю alias в оболочке zsh, я получаю список псевдонимов. Некоторые из них желательны, некоторые нет. Первоначально я создал файл .alias в своем домашнем каталоге и добавил исходный файл source $HOME/.alias в свой .zshrc . Как удалить любой существующий псевдоним, который не является частью файла, полученного из моего .zshrc? (Предположительно я мог бы сделать это один за другим с unalias , но это кажется невероятно громоздким.)

1 ответ1

1

unalias поддерживает одновременное удаление нескольких псевдонимов, поэтому вам не обязательно делать это по одному.

Я бы предложил просто удалить все псевдонимы и заново загрузить их из ~/.alias .

unalias ${(k)aliases} ${(k)galiases} ${(k)saliases}; source 

Это требует загрузки модуля zsh/parameter . Проверьте с помощью zmodload | grep parameter , загрузить с помощью zmodload zsh/parameter .

Параметры aliases , galiases и saliases отображают имена регулярных, глобальных и суффиксных псевдонимов соответственно их расширениям. ${(k)parameter} заменяется ключами parameter .


Если по какой-то причине вы не можете загрузить модуль, вы можете обойти его, используя вывод команды alias :

unalias $(alias | cut -d = -f 1) ; source ~/.alias

Если вы хотите удалить только псевдоним определенного типа, используйте alias -r для обычных псевдонимов (используемых вместо команд), alias -g для глобальных псевдонимов и alias -s для псевдонимов суффиксов.


Если вам нужно делать это чаще, просто определите функцию в вашем ~/.zshrc (или в каком-то другом файле, который вы там используете)

reload-aliases () {
    unalias ${(k)aliases}
    source ~/.alias
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .