如何告诉 bash 不要扩展别名

Per*_*man 8 bash alias

我知道有一个简单的语法可以告诉 bash 不要扩展别名。然而,谷歌并没有打开它,我懒得通读 man bash。另外,答案应该在这个网站上。

Ign*_*ams 12

在第一个字符前放置一个反斜杠。

$ alias ls="echo foo"
$ ls
foo
$ \ls
bin
Desktop
Documents
  ...
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一下,这不是 bash 特定的功能。它由 POSIX 强制执行,可用于 bash、ksh 和 zsh 等。 (4认同)

Paw*_*ski 8

您可以使用commandshell 内置命令。它将只执行在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
Run Code Online (Sandbox Code Playgroud)