Il est des fois où l’on perd son temps à passer d’un répertoire à l’autre depuis son terminal. Que ce soit pour d’interminables couples compilation/débogage ou pour une toute autre raison, on enchaîne les foutus « cd ceci » et les « cd celà » , sans que l’on puisse vraiment se satisfaire de dcd.
Voici deux petites fonctions qui ne vous laisseront pas de marbre. Elles sont à ajouter au démarrage du terminal dans le fichier .bashrc, toujours via la commande source :
# Variable globale pour l'utilisation des fonctions later et before BEFORE=`pwd` # Permet de sauvegarder le chemin actuel # @param -q (quiet) pour que la commande n'affiche rien dans le terminal function later () { BEFORE=`pwd` test "$1" != "-q" && echo "later <- `printcolor $GREEN $BEFORE`" } # Permet de sauvegarder le chemin actuel et de retourner au chemin precedemment sauvegarde # @param -q (quiet) pour que la commande n'affiche rien dans le terminal function before () { BEFORE2=`pwd` test "$1" != "-q" && echo "later <- `printcolor $GREEN $BEFORE2`" test "$1" != "-q" && echo " now -> `printcolor $GREEN $BEFORE`" cd $BEFORE BEFORE=$BEFORE2 } alias lt=later alias bf=before
L’utilisation de ces fonctions s’avère alors extrêmement simple :
$ cd toto/tata/titi/ $ lt later <- /home/moua/toto/tata/titi $ cd ../../tutu/ $ bf later <- /home/moua/toto/tutu now -> /home/moua/toto/tata/titi $ bf later <- /home/moua/toto/tata/titi now -> /home/moua/toto/tutu
Bien-sûr, pour un aspect plus sinistre, il est possible de virer les printcolor… 😯
Sinon tu as «cd -» aussi
Merci chère collègue ! Les choses les plus simples sont parfois les plus méconnues, et plutôt que réinventer la roue, je me suis carrément attaqué au carrosse avec mes deux fonctions… 😳 Pour me consoler (et être un peu de mauvaise foi), mes alias permettent d’économiser 2 caractères et ainsi doubler la productivité… Ouais, je sais, c’est franchement WTF
Deux petites précisions (car la connaissance n’a de valeur que si elle est partagée par tous) :
La variable de session $OLDPWD permet de connaître le précédent répertoire, ce que je fais d’ailleurs avec « bf ? » mais qui a été implémenté après l’écriture de cet article
Un frenchy a écrit un script apparemment très sympa pour naviguer dans ses répertoires rapidement : autojump. Des tribunes y sont régulièrement consacrées sur le site LinuxFR.org