Zsh 在“别名”中获取“pwd”?

Zsh 在“别名”中获取“pwd”?,zsh,zshrc,Zsh,Zshrc,有没有办法在我的.zshrc文件中的别名中获取pwd?我正在尝试做如下事情: alias cleanup="rm -Rf `pwd`/{foo,bar,baz}" 这在bash中运行良好pwd始终是我放入cd'd的目录,但是在zsh中,它似乎是在.zshrc文件首次加载时计算的,并且始终作为我的主目录。我已经用一个非常简单的alias设置测试了使用,但它从未改变 如何进行此更改,以便从子目录调用别名始终作为该子目录进行计算 编辑:不确定这是否有帮助,但我正在通过mac上的oh my zsh使用

有没有办法在我的
.zshrc
文件中的
别名中获取
pwd
?我正在尝试做如下事情:

alias cleanup="rm -Rf `pwd`/{foo,bar,baz}"
这在bash中运行良好
pwd
始终是我放入
cd
'd的目录,但是在zsh中,它似乎是在
.zshrc
文件首次加载时计算的,并且始终作为我的主目录。我已经用一个非常简单的
alias
设置测试了使用,但它从未改变

如何进行此更改,以便从子目录调用
别名
始终作为该子目录进行计算


编辑:不确定这是否有帮助,但我正在通过mac上的oh my zsh使用zsh。

加载
.zshrc
时,将评估
alias
命令。该命令由两个单词组成:一个命令名(内置的
别名
)和一个参数,该参数是展开
cleanup=“rm-Rf`pwd`/{foo,bar,baz}”
的结果。由于反引号是在双引号之间插入的,因此此参数扩展为
cleanup=rm-Rf/home/pluggd/{foo,bar,baz}
(这是一个单shell单词),其中
/home/pluggd
是当时的当前目录

如果要在定义命令时避免插值,请改用单引号。这几乎总是您想要的别名

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'

嗯,用函数代替有什么问题吗<代码>函数pwdtestf(){echo
pwd
}
是否正常工作?@ulrichswarz pwd仅在函数中工作,而不是在alias脚本中工作。我的环境:iTerm2+Ohmyzsh这是一个令人惊讶的答案,你只能如此!谢谢Gilles!