« Un chemin est juste une suite de noms de dossiers. »
Le même texte peut désigner des emplacements différents selon le répertoire courant. Un chemin absolu part de / ; un chemin relatif part du contexte actuel.
01Observe ton point de départ
cd "$HOME/soria-linux-lab"
pwd
printf 'physique : '; pwd -P
printf 'logique : '; pwd -L
ls -la
. représente le répertoire courant et .. son parent. ~ est développé par le shell vers le répertoire personnel.
02Compare chemins absolus et relatifs
cd "$HOME/soria-linux-lab/projets/app"
cat config/application.env
cat ./config/application.env
cat "$HOME/soria-linux-lab/projets/app/config/application.env"
cd ../../logs
pwd
03Lis les grands répertoires du système
ls -ld / /etc /home /var /tmp /usr /opt /run /proc /sys
find /etc -maxdepth 1 -type f | head
find /var/log -maxdepth 1 -type f 2>/dev/null | head
/etc/var/tmp/proc04Construis une arborescence en une commande
mkdir -p projet-demo/{src,config,logs,docs,tests}
find projet-demo -maxdepth 2 -type d -print | sort
L’option -p crée les parents manquants et ne traite pas comme une erreur un répertoire déjà présent. L’expansion d’accolades est effectuée par Bash avant l’exécution de mkdir.
05Utilise les piles de répertoires
cd "$HOME/soria-linux-lab"
pushd projets/app
pushd ../../logs
dirs -v
popd
pwd
popd
pwd
pushd et popd permettent de conserver plusieurs contextes de travail sans recopier de longs chemins.
Exécute une commande depuis le mauvais répertoire
Place-toi dans logs, tente de lire config/application.env, explique l’erreur, puis corrige-la avec un chemin relatif et un chemin absolu.
06Challenge autonome
Crée une arborescence pour un service fictif avec :
- configuration ;
- données ;
- logs ;
- sauvegardes ;
- documentation ;
- tests.
Produis ensuite un fichier arborescence.txt avec find, trié et limité à trois niveaux.
✓Ce que tu retiens
Le répertoire courant est une donnée d’exécution. Utilise des chemins absolus pour les opérations sensibles et des chemins relatifs seulement lorsque le contexte est explicite et reproductible.