On a beau être un fervent utilisateur du terminal, on découvre régulièrement de nouvelles fonctionnalités qui nous font gagner du temps et qui nous paraissent finalement indispensables. Parmi elles, je viens juste d\’apprendre l\’existence des commandes pushd et popd; le \ »d\ » final faisant référence à \ »directory\ ». Ces deux commandes servent à gérer une pile de chemins. La première ajoute au dessus de la pile le chemin courant puis le chemin passé en paramètre et se rend à ce dernier. La seconde dépile le premier élément et se rend au nouveau premier élément. Un exemple concret de navigation classique depuis le terminal :
login@ubuntu:~/Documents/blog/articles$ cd /var/log
login@ubuntu:/var/log$ do-something-amazing
login@ubuntu:/var/log$ cd ~/Documents/blog/articles
login@ubuntu:~/Documents/blog/articles$
En utilisant maintenant pushd et popd :
login@ubuntu:~/Documents/blog/articles$ pushd /var/log
# ici est affiché l\'état de la pile en partant du haut de celle-ci
/var/log /home/login/Documents/blog/articles
login@ubuntu:/var/log$ do-something-very-amazing
login@ubuntu:/var/log$ popd
login@ubuntu:~/Documents/blog/articles$
Le but à terme est donc d\’utiliser autant que possible pushd à la place de cd de façon à gérer un historique de parcours de répertoires. Il est intéressant aussi de noter que la pile n\’est évidemment pas limitée à deux éléments! Ainsi, deux pushd d\’affilée permettront de revenir en arrière d\’autant. Enfin, une utilisation pratique peut être de faire :
login@ubuntu:~/Documents/blog/articles$ pushd .
~/Documents/blog/articles ~/Documents/blog/articles
Ainsi, vous pouvez naviguer où bon vous semble le temps d\’effectuer une autre tâche (avec des cd) et revenir quand nécessaire dans ce répertoire grâce à un popd. Dernière chose, la commande dirs permet de fournir l\’état de la pile et d\’en gérer quelques aspects (la vider par exemple).
Intéressant. Ça me fait penser à l’usage de « cd – » qui permet de retourner au précédent dossier. Donc avec l’exemple, ça ferait :
login@ubuntu:~/Documents/blog/articles$ cd /var/log
login@ubuntu:/var/log$ do-something-amazing
login@ubuntu:/var/log$ cd –
login@ubuntu:~/Documents/blog/articles$
C’est vrai que c’est quelque peu identique si ce n’est une gestion plus fine de l’historique avec pushd/popd.
C’est marrant de retrouver des commandes MS-DOS sous Linux 😉
Pour une fois c’est dans le bon sens!!!
Ce sont des commandes MS-DOS à la base?! Du coup, je fais quoi? Je dépublie l’article? 😀
D’ici à ce qu’ils nous sortent un vieux brevet pour nous dire qu’on peut pas utiliser pushd/popd… C’est à la mode en ce moment!
Y’a autojump, un peu dans le même genre, qui permet d’éviter les « cd » un peu long: http://github.com/joelthelion/autojump/wiki
Je confirme, autojump est merveilleux, indispensable au quotidien dans la console (et il y a une version pour zsh). En plus le dev principal est français et hyper réactif en cas de problèmes, ce qui ne gâche rien.