Passer d’un chemin à l’autre dans le terminal

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… 😯

2 réflexions sur « Passer d’un chemin à l’autre dans le terminal »

    1. 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 :mrgreen:

      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

Les commentaires sont fermés.