Jak powiedzieć bashowi, aby nie rozwijał aliasów

6

Wiem, że istnieje prosta składnia informująca bash, aby nie rozszerzał aliasów. Jednak Google nie podnieca tego i jestem zbyt leniwy, aby czytać man bash. Odpowiedź powinna być także na tej stronie.

Personman
źródło

Odpowiedzi:

12

Umieść pierwszy ukośnik przed pierwszym znakiem.

$ alias ls="echo foo"
$ ls
foo
$ \ls
bin
Desktop
Documents
  ...
Ignacio Vazquez-Abrams
źródło
4
Nawiasem mówiąc, nie jest to funkcja specyficzna dla basha. Jest to wymagane przez POSIX i działa między innymi w bash, ksh i zsh.
Gilles
8

Możesz użyć commandwbudowanego polecenia powłoki. Wykonuje tylko polecenia znalezione w PATHwbudowanych komendach lub powłoki. Nie wykona aliasów ani funkcji powłoki.

Przykład:

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
Paweł Nadolski
źródło
3

Wpisz shopt -u expand_aliasesw powłoce bash (przełącznik -u jest wyłączony). Polecam przeczytanie strony man dla shopt.

bossNova
źródło