Je souhaite personnaliser la fonctionnalité de cd
commande selon mes besoins.
J'ai défini la fonction suivante -
function cd () { cd "$@" && pushd "$@"; }
Le but de cette fonction est de pousser automatiquement le répertoire sur la pile afin qu'il me sauve l'effort de taper manuellement à pushd .
chaque fois.
Cependant, la fonction ci-dessus est une fonction infiniment récursive, car l'appel à cd
est interprété comme étant la fonction elle-même et non la fonction cd
intégrée.
Comment puis-je référencer le cd
intégré dans cette fonction?
Je sais que les alias peuvent être échappés en utilisant \
. Comment échapper de manière plus explicite aux fonctions ou référencer des éléments intégrés?
Remarque: je ne veux pas renommer ma fonction en autre chose.
pushd
ne prend pas en charge -P
. Mais vous avez raison, comme le montre la question, cela function cd
semble un peu faux, car il a changé de répertoire deux fois.
alias cd=pushd
? À quoi vous attendez-vous lorsque vous enregistrez quelque chose qui n'est pas un chemin absolu (par exemplecd ../
)?