如何在 bash 中为单个命令禁用别名?

Wil*_*ard 7 bash alias

假设您将终端保持打开状态,一位同事走过来并输入:

alias    exit='echo nope'
alias unalias='echo nope'
alias    type='echo nope'
alias builtin='echo nope'
alias   alias='echo nope'
Run Code Online (Sandbox Code Playgroud)

你怎么能运行这些命令之一呢?

Wil*_*ard 15

我知道这样做的方法是在命令前加一个反斜杠:

$ type type
nope type
$ \type type
type is aliased to `echo nope'
$ unalias type
nope type
$ \type unalias
unalias is aliased to `echo nope'
$ \unalias unalias
$ unalias type
$ type type
type is a shell builtin
$ type unalias
unalias is a shell builtin
$ 
Run Code Online (Sandbox Code Playgroud)

但是,我不知道这是在哪里记录的。

  • man bash 说: 字符 /、$、` 和 = 以及上面列出的任何 shell 元字符或引用字符可能不会出现在别名中。共有三种引用机制:转义字符、单引号和双引号。 (3认同)