我正在使用 tcsh。bash 和 zsh 以及其他建议在这里无济于事。
我有几个别名与另一个命令的名称相同,所以如果我取消了它的别名,现在输入相同的东西会做不同的事情。
大多数时候我想要别名命令,这就是我拥有它们的原因。但是,有时我想要无别名的命令。
在没有实际取消别名和重新定义命令的情况下,是否有一种简单的方法可以告诉 tcsh 使用取消别名的命令?
例如,vi 是 vim 的别名,但有时我只想使用 vi。cd 别名用于更改我的窗口标题,但有时我想不理会它。
显然我可以输入 /usr/bin/vi 但由于 cd 是一个 shell 内置命令,所以没有等效的命令。有没有通用的解决方案?
gee*_*aur 34
您可以使用反斜杠:
% alias ls ls -a
% ls
# ls -a output here
% \ls
# plain ls output here
Run Code Online (Sandbox Code Playgroud)
对于 shell 内置函数,结果证明存在一个问题:前导反斜杠可防止使用别名和内置函数,但内部反斜杠仅抑制别名。
% alias cd pushd
% cd /tmp
/tmp /tmp
% c\d
% dirs
~ /tmp
Run Code Online (Sandbox Code Playgroud)
(我很想把这称为反对使用cshshell 家族的另一个论点。)