Powiedzmy, że mam następujący alias w bash - alias ls='ls --color=auto'
- i chcę zadzwonić zwyczajnie ls
bez opcji. Czy jedynym sposobem na to jest odblokowanie, wykonanie polecenia, a następnie ponowne wygenerowanie aliasu? A może jest jakiś fajny trik lub obejście?
163
Odpowiedzi:
Możesz także poprzedzić ukośnik odwrotny, aby wyłączyć alias:
\ls
Edycja: Inne sposoby robienia tego samego obejmują:
Użyj „polecenia”:
command ls
jak na Mikela .Użyj pełnej ścieżki:
/bin/ls
jak na inny .Cytuj polecenie:
"ls"
lub'ls'
zgodnie z komentarzem Mikela.Możesz tymczasowo usunąć alias dla tej sesji terminala za pomocą
unalias command_name
.źródło
command
lubbuiltin
.l\s
robi to samo. Czy to zachowanie jest błędem czy cechą?Po to
command
jest polecenie.Próbować
To każe powłoce ominąć aliasy i funkcje.
Ten sposób jest obsługiwany przez bash , zsh i ash / dash.
źródło
Alias jest tylko zdefiniowanym skrótem. W tym przykładzie zdefiniowanym aliasem jest ciąg znaków
ls
, który jest wykonywanyls --color=auto
. Jeśli nie chcesz tego zachowania, możesz wywołać plik binarnyls
przy użyciu ścieżki bezwzględnej.Więc wykonanie po prostu
/bin/ls
da wynik bez koloru, ponieważ nie jest to zdefiniowany alias.Możesz także zmienić alias na coś innego lub dodać nowy alias, który będzie wykonywany
ls
bez parametrów koloru.źródło
/bin
i/usr/bin
jest arbitralny.which
niektórych poleceń:which ls
.which
(lubtype
), wyszukuje za pośrednictwem$PATH
; równie dobrze możesz po prostu użyćls
lub\ls
zamiast określać ścieżkę.Innym sposobem, w oparciu o odpowiedź @ uther, jest użycie
$(which ...)
lub`which ...`
(użycie backticks``
), aby automatycznie znaleźć ścieżkę pliku wykonywalnego. Będzie to działać wbash
:Niewątpliwie po prostu poprzedzenie polecenia znakiem
\
jest znacznie krótsze.AKTUALIZACJA : Zgodnie z tym, jak używać „które” w aliasowanym poleceniu? , to wcale nie wydaje się wiarygodne.
źródło
`which ls`
bezpośrednie wykonanie pliku binarnego.(which ls)
to nie działało dla mnie (na Ubuntu 12.04 LTS) I backty były ciężkie, po prostu ich uniknąłem: \ `ls \ '.$
?Osobiście po prostu unikam definiowania aliasów o takich samych nazwach jak polecenia, więc
ls
zawsze wywołuje właściwe polecenie. Mam aliasy lub funkcji dla różnych kombinacji opcji, takich jakl
,ll
ilg
. (Oznacza to, że potrzebujęunalias ls
w moim.bashrc
lub.cshrc
.)Uważam, że założenia systemu operacyjnego dotyczące preferowanych przeze mnie opcji (przesłaniające założenia projektantów samego
ls
polecenia) rzadko odpowiadają moim osobistym upodobaniom. Zdarza mi się nie podobać wyglądls --color=auto
, a jego czytelność może się znacznie różnić od czarno-białej do biało-czarnej.YMMV i inne rozwiązania są oczywiście nadal dobrze znane.
źródło
Wydaje się, że wpisanie polecenia wielkimi literami działa
LS
, chociaż nie jestem do końca pewien, dlaczego.źródło
LS - display animations aimed to correct users who accidentally enter LS instead of ls.