Naviguer dans des structures de répertoires complexes dans un terminal Linux peut s’avérer fastidieux, en particulier lors de l’administration du système ou de l’écriture de scripts. Si cd (changer de répertoire) est la commande de référence pour la navigation dans les répertoires, elle ne permet pas de gérer une pile de répertoires – une fonctionnalité que pushd et popd apportent à la table.
Cet article propose une analyse approfondie des commandes pushd et popd, vous montrant comment rationaliser la navigation dans les répertoires et rendre vos flux de travail sur le terminal plus efficaces.
pushd (push directory) enregistre votre répertoire actuel dans une pile, puis passe à un nouveau répertoire.
popd (pop directory) supprime le répertoire supérieur de la pile et vous ramène au répertoire précédent.
Ces commandes font partie du mécanisme de pile de répertoires disponible dans bash, zsh et d’autres shells modernes.
les commandespushd et popd sont très utiles dans les cas suivants :
Vous vous déplacez fréquemment entre deux ou plusieurs répertoires.
Vous écrivez des scripts shell qui ont besoin de changer temporairement de répertoire.
Vous voulez éviter de polluer votre shell avec des commandes cd inutiles et maintenir le contexte.
Repousse le répertoire actuel sur la pile.
Change le répertoire en /chemin/vers/cible.
exemple :
Vous êtes maintenant dans /var/www/html, et votre répertoire personnel ~ est stocké sur la pile.
Retire le répertoire supérieur de la pile.
Vous ramène au répertoire précédent.
Suite de l’exemple ci-dessus :
Vous êtes de retour dans ~.
Utilisez dirs pour afficher l’état actuel de la pile de répertoires :
Exemple de sortie :
L’indice 0 correspond au répertoire actuel.
Les indices supérieurs représentent les répertoires précédents.
Vous pouvez utiliser :
pour pousser le répertoire courant vers la pile sans changer de répertoire.
Efficace pour un développement itératif sans commandes cd répétitives.
Voici un script qui construit du code dans un répertoire temporaire et revient proprement :
Si le script échoue dans /tmp/build-env, vous revenez toujours à votre emplacement d’origine.
Cela rend vos scripts plus faciles à maintenir, en particulier lorsque des erreurs surviennent – vous pouvez revenir au répertoire d’origine en toute sécurité.
Lorsque vous travaillez avec plusieurs appels pushd, dirs -v vous aide à retracer l’historique de votre navigation.
Vous pouvez supprimer un répertoire spécifique de la pile :
Supprime le répertoire à l’index 1 (pas nécessairement le répertoire courant).
Stack Overflow (pas le site 😄) : L’utilisation excessive de pushd sans appels popd correspondants peut gonfler votre pile, conduisant à un état de répertoire confus.
Pas disponible partout: pushd et popd sont intégrés dans bash, zsh, et autres shells similaires – ils peuvent ne pas être disponibles dans des shells minimaux comme sh.
Pas de persistance: La pile de répertoires est basée sur les sessions. Lorsque votre session de terminal se termine, la pile est réinitialisée.
Dans votre .bashrc ou.zshrc, ajoutez :
Cela permet de réduire le nombre de frappes et d’améliorer la productivité.