如何“不”执行别名

如何“不”执行别名

我在文件中设置了一些别名.bashrc。大多数时候我都需要这些别名,但有时我需要运行那些命令而不在该特定别名中设置选项。

如何不是执行别名命令?

答案1

运行以 为开头的命令\,示例中的答案是:;)

% 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

您可以使用 shell 内置命令command来转义别名(和函数):

command alias_name

例如:

command ls

将运行/bin/ls二进制,而不是定义为的任何别名ls

另一种方法是使用引号:

"alias_name"

或者

'alias_name'

例如:

"ls"

或者

'ls'

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

答案3

或者,您可以指定命令的完整路径。例如,我的ls命令别名为ls='ls --color -F'

人们可以做的是调用/bin/ls$(which ls)(对于那些懒得输入完整路径的人来说)。

示例:使用标志调用原始命令$(which ls) -l

相关内容