使别名在“那个”目录中起作用?即使在 .zshrc 中创建

使别名在“那个”目录中起作用?即使在 .zshrc 中创建

这是 zsh,但也许适用于其他 shell。

假设你在目录中/foo,并且你

% find $PWD -name '.*'

它运行良好,结果来自/foo

现在(在/foo)输入此

% alias crazy="find $PWD -name '.*'"

现在% crazy你会看到相同的结果。一切都很好。

但是。比如在 Mac 中,输入你的.zshrc

# Let's see what happens:
% alias crazy="find $PWD -name '.*'"

现在,例如在 Mac 上,打开一个新的终端会话。在 Mac *nix 的情况下,它会这样做,实际上是在某个特定的默认目录中打开 zsh /blah/fattie

现在% cd /foo输入crazy

事实上。您获得的结果来自 的结果/blah/fattie

如果你想让“疯狂”按预期工作,你必须这样做

% alias crazy="find $PWD -name '.*'"

然后/foo它将在“那个”目录上运行,即/foo

有没有解决办法

% alias crazy="find $PWD -name '.*'"

在工作“它现在所在的目录”而不是“创建别名时所在的目录”?

答案1

嗯,解决办法很简单,感谢使用 Kamil

错误的

% alias crazy="find $PWD -name '.*'"

正确的:

% alias crazy="find \$PWD -name '.*'"

相关内容