如何“不”执行别名

我在.bashrc文件中设置了几个别名。大多数时候我需要这些别名,但有时候我需要运行那些命令而不使用特定别名中设置的选项。
如何不执行别名命令?
3个回答

在运行命令时,使用一个前导的\,示例中的答案是;)
% ls
bar  foo

% alias ls="ls -laog"

% ls
total 4292
drwxrwxr-x  4 4329472 Nov  5 15:06 .
drwx------ 95   28672 Nov  5 15:15 ..
-rw-rw-r--  1       0 Nov  5 15:06 bar
drwxrwxr-x  2    4096 Nov  5 15:06 foo
drwxrwxr-x  2    4096 Okt  2 14:29 .foo
-rw-rw-r--  1     191 Feb 25  2015 .htaccess

% \ls
bar  foo

稍微长一点,但也是可能的。
command ls

2再一次,我又学到了新的东西。+1 =) - Terrance
我真的不知道该接受谁的建议 - Alex Jones
那很简单。只需接受你的最爱即可。 - A.B.

你可以使用shell内置的command来转义别名(和函数):
command alias_name

例如:

command ls

将运行/bin/ls二进制文件,而不是任何定义为ls的别名。
另一种选择是使用引号:
"alias_name"

或者

'alias_name'

例如:

"ls"

或者

'ls'

这些命令将再次运行`/bin/ls`二进制文件,忽略任何别名`ls`。

这是内置的bash特定吗?另外,为双引号点赞。 - Sergiy Kolodyazhnyy
@Serg command 是由 POSIX 定义的,因此应该适用于所有符合 POSIX 标准的 shell。 - heemayl
真的不知道该选择谁 - Alex Jones
3@edwardtorvalds 我建议你接受A.B.的建议,因为他的建议先到且方向明确。我想我和Serg都不会介意 :) - heemayl
嗯,那很有道理。 - Alex Jones

或者,您可以指定命令的完整路径。例如,我的ls命令被别名为ls='ls --color -F' 可以做的一件事是要么调用/bin/ls,要么调用$(which ls)(对于那些懒得输入完整路径的人来说)。
示例:使用标志调用原始命令$(which ls) -l

我真的不知道该接受谁的建议 - Alex Jones
1@edwardtorvalds A.B.的方法是最简单且被广泛使用的,我认为他的方法是正确的。 - Sergiy Kolodyazhnyy