Когда ваш .zshrc
загружен, оценивается команда alias
. Команда состоит из двух слов: имя команды (встроенный alias
) и один аргумент, который является результатом расширения cleanup="rm -Rf `pwd`/{foo,bar,baz}"
. Поскольку обратные кавычки интерполируются между двойными кавычками, этот аргумент расширяется до cleanup=rm -Rf /home/unpluggd/{foo,bar,baz}
(это одно слово оболочки), где /home/unpluggd
- текущий каталог на тот момент.
Если вы хотите избежать интерполяции во время определения команды, используйте вместо нее одинарные кавычки. Это почти всегда то, что вы хотите для псевдонимов.
alias cleanup='rm -Rf `pwd`/{foo,bar,baz}'
Однако это излишне сложно. Вам не нужно `pwd/`
перед именами файлов! Просто напишите
alias cleanup='rm -Rf -- {foo,bar,baz}'
(--
необходим, если foo
может начинаться с -
, чтобы избежать его анализа в качестве опции для rm
), что можно упростить, так как скобки больше не нужны:
alias cleanup='rm -Rf -- foo bar baz'