Linux alias-chain-Befehle (Rekursion vermieden werden?)
Ich habe etwa auf der Suche nach Möglichkeiten, um den alias löschen und ls in einem einzigen Befehl.
Derzeit habe ich den vorgegebenen Befehl x:
alias x="clear;ls"
Nun gibt es eine walkaround Rekursion zu vermeiden und definieren:
alias ls='clear;ls'
- Ich kann es nicht, etwas zu tun rekursiv auf meinem system, aber Sie haben versucht
alias ls='clear;/bin/ls'
? - Meine
ls
seit langem ein alias auf " ls "und, wie Manny D, es' s hatte nie Probleme bei der Rekursion. Ich habe versucht, Ihralias ls='clear;ls'
und es funktionierte auch. Dies ist auf RHEL 5 Linux mit Bash, version 3.2.25 -- was für ein system und welche shell benutzt du? - oh, ich war mit tcsh, wenn ich definieren: alias ls
'clear;ls'
und verwenden Sie ls wird es werfen eine"Alias Loop."
Fehler. Aber es hat funktioniert unter Bash. - Sollten Sie vielleicht ändern Sie die
bash
Flagge zutcsh
dann.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie einen umgekehrten Schrägstrich vor dem Namen des Befehls, wird deaktivieren Sie alle Aliase.
Oder, wie Arnaud sagte, verwenden Sie einfach den vollständigen Pfad für die ls.
Einen anderen Weg, dies zu tun wäre
Diese unterscheidet sich von
/usr/bin/ls
, als es noch suchtls
im$PATH
, aber ignorieren shell-Funktionen oder Aliase.command
eingebaut.Nur :
Beim Tippen:
Zunächst einmal wird es suchen Sie eine Benutzer-definierte Funktion, wird es starten Sie es, sonst Suche in $PATH-Befehle.
Indem der explizite Pfad der
ls
Befehl, Rekursion vermieden werden kann.