Bon, mine de rien depuis tout à l'heure on est coincé dans notre dossier "home" et on aimerait bien bouger de là.
Le moment est venu de déplacer le navire moussaillon !
La commande que nous allons étudier ici s'appelle
cd, abréviation de "Change Directory" (changer de dossier). C'est une commande très importante que vous allez utiliser quelques milliers de fois dans votre vie (au moins

).
Contrairement à ls, la commande cd ne prend pas plein de paramètres mais juste un seul : le nom du dossier dans lequel vous souhaitez aller.
Si on veut aller à la racine, il suffit de taper
cd / :
Code : Console | mateo21@mateo21-desktop:~$ cd /
mateo21@mateo21-desktop:/$ pwd
/ |
Après avoir tapé
cd /, on se retrouve à la racine. L'invite de commandes a changé et le
~ a été remplacé par un
/. Si vous êtes sceptique, un petit coup de pwd devrait vous confirmer que vous êtes bien dans /
Bon listons les fichiers et dossiers contenus dans / :
Code : Console | mateo21@mateo21-desktop:/$ ls -F
bin/ dev/ initrd/ lib/ mnt/ root/ sys/ var/
boot/ etc/ initrd.img@ lost+found/ opt/ sbin/ tmp/ vmlinuz@
cdrom@ home/ initrd.img.old@ media/ proc/ srv/ usr/ vmlinuz.old@ |
Vous y retrouvez un grand nombre de dossiers que je vous ai décrits au début du chapitre.
Allons dans le sous-dossier usr :
Code : Console | mateo21@mateo21-desktop:/$ cd usr |
Voyons voir ce qu'il y a là-dedans...
Code : Console | mateo21@mateo21-desktop:/usr$ ls -F
bin/ games/ include/ lib/ local/ sbin/ share/ src/ X11R6/ |
Chez moi, il n'y a que des dossiers. Hummm, le dossier games m'intrigue, voyons voir ce que j'ai comme jeux :
Code : Console | mateo21@mateo21-desktop:/usr$ cd games
mateo21@mateo21-desktop:/usr/games$ |
Schématiquement, on vient de faire ça :
Bon, mais maintenant supposons que j'aie envie de revenir au dossier précédent, aussi appelé dossier parent, c'est-à-dire "
/usr". Comment je fais ?
Il faut utiliser les deux points comme ceci :
Code : Console | mateo21@mateo21-desktop:/usr/games$ cd ..
mateo21@mateo21-desktop:/usr$ |
Et hop là, on est revenu au dossier parent !
Si on avait voulu reculer de 2 dossiers parents, on aurait écrit ../.. (reviens en arrière, puis reviens en arrière). Ca nous aurait ramené à la racine :
Code : Console | mateo21@mateo21-desktop:/usr/games$ cd ../..
mateo21@mateo21-desktop:/$ |
Eh mais en fait, il y a plusieurs façons d'aller dans un dossier non ? Tout à l'heure on est allé à la racine en tapant
cd /, et maintenant en tapant
cd ../..
C'est quoi cette affaire ?
Il y a en fait 2 façons de changer de dossier : en indiquant un chemin relatif, ou en indiquant un chemin absolu.
Les chemins relatifs
Un chemin relatif est un chemin qui dépend du dossier dans lequel vous vous trouvez. Tout à l'heure, on est allé dans le sous-dossier games de /usr en tapant juste son nom :
Code : Console | mateo21@mateo21-desktop:/usr$ cd games |
En faisant cela, on utilise un chemin relatif, c'est-à-dire relatif au dossier actuel. Quand on met juste le nom d'un dossier comme ici, cela indique que l'on veut aller dans un sous-dossier.
Si on fait
cd games depuis la racine, ça va planter :
Code : Console | mateo21@mateo21-desktop:/$ cd games
bash: cd: games: Aucun fichier ou répertoire de ce type |
Je crois que le message d'erreur est assez clair : il n'y a aucun dossier games dans /
Pour se rendre dans games, il faut d'abord indiquer le dossier qui le contient (usr) :
Code : Console | mateo21@mateo21-desktop:/$ cd usr/games
mateo21@mateo21-desktop:/usr/games$ |
Les chemins absolus
Contrairement aux chemins relatifs, les chemins absolus fonctionnent quel que soit le dossier dans lequel on se trouve.
Un chemin absolu est facile à reconnaître : il commence toujours par la racine (/). Vous devez faire ensuite la liste des dossiers dans lesquels vous voulez entrer. Par exemple, supposons que je sois dans /home/mateo21 et que je souhaite aller dans /usr/games. Avec un chemin absolu :
Code : Console | mateo21@mateo21-desktop:~$ cd /usr/games
mateo21@mateo21-desktop:/usr/games$ |
Le schéma montre bien qu'on
part de la racine / pour indiquer où on veut aller.
Si on avait voulu faire la même chose à coup de chemin relatif, il aurait fallu écrire :
Code : Console | mateo21@mateo21-desktop:~$ cd ../../usr/games/
mateo21@mateo21-desktop:/usr/games$ |
Ce qui signifie "
reviens en arrière (donc dans /home) puis reviens en arrière (donc dans /), puis va en avant dans usr, puis va en avant dans games".
Ici, comme c'est un chemin relatif, on
part du dossier dans lequel on se trouve (/home/mateo21) et on indique à la machine le chemin à suivre à partir de là pour aller dans le dossier qu'on veut.
Retour au répertoire home
Si vous voulez retourner dans votre répertoire home personnel, plusieurs solutions s'offrent à vous :
- La brutale : il suffit d'écrire le chemin absolu en entier. Cela donne :
Code : Console | mateo21@mateo21-desktop:/usr/games$ cd /home/mateo21/
mateo21@mateo21-desktop:~$ |
- La maligne : plus court et plus pratique, vous pouvez utiliser l'alias ~ qui signifie la même chose. Cela donne :
Code : Console | mateo21@mateo21-desktop:/usr/games$ cd ~
mateo21@mateo21-desktop:~$ |
- La super-maligne : si vous ne mettez aucun paramètre à la commande cd, ça vous ramène aussi dans votre répertoire personnel

Code : Console | mateo21@mateo21-desktop:/usr/games$ cd
mateo21@mateo21-desktop:~$ |
Autocomplétion du chemin
Cette astuce est vitale, si vous ne vous en servez pas, vous passez à côté d'une des plus importantes astuces de la console.
L'idée est simple : taper cd /usr/games/trucbidule c'est bien, mais c'est parfois un peu long de tout écrire. On a la flemme. Vous avez la flemme. Oui vous. Alors vous allez justement demander à l'ordinateur de compléter le chemin tout seul !
L'autocomplétion de chemin fonctionne de la même manière que l'autocomplétion de commande qu'on a vue dans le chapitre précédent : avec la touche Tab (Tabulation). Faites le test avec moi. Commencez par vous placer dans /usr :
Code : Console | mateo21@mateo21-desktop:~$ cd /usr
mateo21@mateo21-desktop:/usr$ |
Tapez ensuite juste
cd ga, puis appuyez sur Tab. C'est magique, le nom du dossier a été automatiquement complété !
Code : Console | mateo21@mateo21-desktop:/usr$ cd games/ |
Revenez maintenant dans /usr (en faisant
cd .. par exemple) et essayez de taper juste
cd l, puis faites Tab. Rien ne se passe : cela signifie que l'ordinateur n'a pas trouvé de dossier qui corresponde au début de votre recherche, ou alors qu'il y en plusieurs qui commencent par "l". Refaites encore Tab :
Code : Console | mateo21@mateo21-desktop:/usr$ cd l
lib/ local/
mateo21@mateo21-desktop:/usr$ cd l |
On vient de vous donner la liste des dossiers qui commencent par "l" ! Cela signifie qu'il faut préciser votre recherche parce que sinon l'ordinateur ne peut pas deviner dans quel dossier vous voulez entrer. Ca tombe bien, la commande a été réécrite en-dessous, vous n'avez plus qu'à ajouter une lettre plus précise, par exemple "o" pour que Linux devine que vous voulez aller dans le dossier "local". Tapez donc "o", puis à nouveau Tab, et le nom sera complété !
Code : Console | mateo21@mateo21-desktop:/usr$ cd local/ |
Faites des tests pour vous entraîner à utiliser l'autocomplétion, c'est vraiment très important. Vous allez voir c'est intuitif et vraiment pratique !
