有没有办法我可以得到我的.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'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。