gpt4 book ai didi

zsh - 在 `pwd` 中获取 `alias` ?

转载 作者:行者123 更新时间:2023-12-04 01:27:13 33 4
gpt4 key购买 nike

有什么办法可以得到pwdalias在我的.zshrc文件?我正在尝试执行以下操作:

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

这在 bash 中运行良好; pwd始终是我的目录 cd 'd into,但是在 zsh 中,它似乎在 .zshrc 时进行了评估文件首先加载并始终作为我的主目录。我用一个非常简单的 alias 进行了测试设置,但它永远不会改变。

我怎样才能进行此更改,以便调用 alias从子目录总是评估为那个子目录?

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

最佳答案

当您的 .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'

关于zsh - 在 `pwd` 中获取 `alias` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5566078/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com