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

zsh – 在`别名’中获取`pwd`?,第1张

概述有没有办法我可以得到我的.zshrc文件中的别名的pwd?我试图做如下的事情: alias cleanup="rm -Rf `pwd`/{foo,bar,baz}" 这在bash中工作正常pwd始终是我已经cd’d进入的目录,但是在zsh看来,当.zshrc文件首次加载并且始终保持为我的主目录时,它被评估.我已经使用一个非常简单的别名设置进行测试,但它永远不会改变. 如何进行此更改,以便从子目录调 有没有办法我可以得到我的.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'
总结

以上是内存溢出为你收集整理的zsh – 在`别名’中获取`pwd`?全部内容,希望文章能够帮你解决zsh – 在`别名’中获取`pwd`?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1048428.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存