zsh – 在`别名’中获取`pwd`?

前端之家收集整理的这篇文章主要介绍了zsh – 在`别名’中获取`pwd`?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法我可以得到我的.zshrc文件中的别名的pwd?我试图做如下的事情:
alias cleanup="rm -Rf `pwd`/{foo,bar,baz}"

这在bash中工作正常pwd始终是我已经cd’d进入的目录,但是在zsh看来,当.zshrc文件首次加载并且始终保持为我的主目录时,它被评估.我已经使用一个非常简单的别名设置进行测试,但它永远不会改变.

如何进行此更改,以便从子目录调用别名总是评估为该子目录?

编辑:不知道这是否会有所帮助,但是我在mac上通过oh-my-zsh使用zsh.

解决方法

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

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

alias cleanup='rm -Rf `pwd`/{foo,baz}'

然而这是不必要的复杂.你不需要`pwd /`在文件名前面!只写

alias cleanup='rm -Rf -- {foo,baz}'

(如果foo可能以 – 开头,那么就需要这样做,以避免被解析为rm的一个选项),这可以被简化,因为不再需要大括号:

alias cleanup='rm -Rf -- foo bar baz'

猜你在找的Linux相关文章