Nehmen wir an, ich habe den folgenden Alias in bash - alias ls='ls --color=auto'
- und ich möchte normal ls
ohne Optionen aufrufen . Ist die einzige Möglichkeit, dies zu tun, das Unalias, das Kommando und dann das Alias erneut auszuführen? Oder gibt es einen raffinierten Trick oder eine Problemumgehung?
163
Antworten:
Sie können auch einen umgekehrten Schrägstrich voranstellen, um den Alias zu deaktivieren:
\ls
Bearbeiten: Andere Möglichkeiten, dasselbe zu tun, umfassen:
Verwenden Sie "Befehl":
command ls
gemäß Mikel .Verwenden Sie den vollständigen Pfad:
/bin/ls
wie oben angegeben .Zitiere den Befehl:
"ls"
oder'ls'
laut Mikel Kommentar.Sie können den Alias für diese Terminalsitzung vorübergehend mit entfernen
unalias command_name
.quelle
command
oder unterscheidetbuiltin
.l\s
es dasselbe tut. Ist dieses Verhalten ein Fehler oder eine Funktion?Dafür ist der
command
Befehl da.Versuchen
Dadurch wird die Shell angewiesen, Aliase und Funktionen zu umgehen.
Dieser Weg wird von bash , zsh und ash / dash unterstützt.
quelle
Der Alias ist nur eine definierte Verknüpfung. In diesem Beispiel ist der definierte Alias die Zeichenfolge
ls
, die ausgeführt wirdls --color=auto
. Wenn Sie dieses Verhalten nicht möchten, können Sie die Binärdateils
über den absoluten Pfad aufrufen .Das Ausführen von just
/bin/ls
führt zu einer Ausgabe ohne Farbe, da es sich nicht um den von Ihnen definierten Alias handelt.Sie können den Alias auch in einen anderen ändern oder einen neuen Alias hinzufügen, der nur
ls
ohne die Farbparameter ausgeführt wird.quelle
/bin
und/usr/bin
beliebig.which
für einige Befehle:which ls
.which
(odertype
) verwenden, wird eine Suche über durchgeführt$PATH
. Sie können auch einfach den Pfad verwendenls
oder\ls
nicht angeben.Eine andere Möglichkeit, auf der Antwort von @ uther aufzubauen, besteht darin , den Pfad der ausführbaren Datei mithilfe von
$(which ...)
oder`which ...`
(mithilfe von Backticks``
) automatisch zu ermitteln. Dies funktioniert inbash
:Zweifellos ist das einfache Präfixieren des Befehls mit a
\
viel kürzer.UPDATE : Entsprechend, wie `which` in einem Alias-Befehl verwendet wird? Dies scheint überhaupt nicht zuverlässig zu sein.
quelle
`which ls`
die Binärdatei direkt ausführen.(which ls)
bei mir nicht geklappt (auf Ubuntu 12.04 LTS) und die Backticks waren hart, ich bin ihnen einfach entkommen: \ `welche ls \`. Es hat eine Menge Bearbeitung$
?Persönlich vermeide ich nur, Aliase mit denselben Namen wie Befehle zu definieren, rufe also
ls
immer den tatsächlichen Befehl auf. Ich habe Aliase oder Funktionen für verschiedene Kombinationen von Optionen wiel
,ll
undlg
. (Das heißt, ich braucheunalias ls
in meinem.bashrc
oder.cshrc
.)Ich stelle fest, dass die Annahmen des Betriebssystems, welche Optionen ich bevorzugen könnte (die Annahmen der Designer des
ls
Befehls selbst überschreiben ), selten meinem persönlichen Geschmack entsprechen. Ich mag das Aussehen von nichtls --color=auto
und seine Lesbarkeit kann zwischen Schwarz auf Weiß und Weiß auf Schwarz stark variieren.YMMV und die anderen Lösungen sind natürlich noch gut zu wissen.
quelle
Die Eingabe des Befehls in Großbuchstaben scheint zu funktionieren
LS
, obwohl ich mir nicht sicher bin, warum.quelle
LS - display animations aimed to correct users who accidentally enter LS instead of ls.