Ich möchte die Funktionalität des cd
Befehls gemäß meinen Anforderungen anpassen .
Ich habe die folgende Funktion definiert -
function cd () { cd "$@" && pushd "$@"; }
Mit dieser Funktion soll das Verzeichnis automatisch auf den Stapel verschoben werden, damit ich nicht pushd .
jedes Mal manuell tippen muss.
Die obige Funktion ist jedoch eine unendlich rekursive Funktion, da der Aufruf cd
von als die Funktion selbst und nicht als die cd
eingebaute interpretiert wird .
Wie beziehe ich mich auf die cd
in dieser Funktion eingebaute?
Ich weiß, dass Aliase mit entkommen werden können \
. Wie können Funktionen oder Referenz-Built-Ins expliziter umgangen werden?
Hinweis: Ich möchte meine Funktion nicht in eine andere Funktion umbenennen.
pushd
unterstützt nicht -P
. Aber du hast recht, wie in der Frage gezeigt function cd
sieht das ein bisschen falsch aus, da es das Verzeichnis zweimal gewechselt hat.
alias cd=pushd
? Was erwarten Sie, wenn Sie zu etwas wechseln, das kein absoluter Pfad ist (z. B.cd ../
)?