我知道有一个简单的语法可以告诉 bash 不要扩展别名。但是,Google 没有找到它,我又懒得阅读 man bash。另外,答案应该在这个网站上。
答案1
在第一个字符前放置一个反斜杠。
$ alias ls="echo foo"
$ ls
foo
$ \ls
bin
Desktop
Documents
...
答案2
您可以使用command
shell 内置命令。它将仅执行在PATH
或 shell 内置命令中找到的命令。它不会执行别名或 shell 函数。
例子:
alias ls='ls -l'
$ ls
drwxr-xr-x 3 user user 4096 2010-10-11 13:17 dir1
drwxr-xr-x 3 user user 4096 2010-10-15 15:37 dir2
$ function ls() {
> echo hello
> }
$ ls
hello
$ command ls
dir1 dir2
答案3
输入shopt -u expand_aliases
bash shell(-u 开关表示取消设置)。我建议阅读 shopt 的手册页。
答案4
正如 @bossNova 已经建议的那样,为了防止别名扩展:
shopt -u expand_aliases
对于那些好奇的人来说,设置别名扩展:
shopt -s expand_aliases