我在文件中设置了一些别名.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