Newer
Older
cours-unix-shell / src / bases / fichiers.md

Système de fichiers

Tout est fichier

Sous Linux, tout est fichier:

  • les fichiers (évidemment)
  • les répertoires
  • d'autres choses plus avancées (socket, devices, ...)

Dans la suite, nous distinguerons les fichiers des répertoires.

Fichiers cachés

Par défaut, ls affiche tous les fichiers visibles.

$ ls
Documents  examples.desktop  Modèles  Téléchargements  Vidéos
Bureau     Images            Musique  Public  snap

Les fichiers cachés sont ceux dont le nom commence par un point ..
Même s'ils sont présent dans le répertoire, ls ne les affiche pas.

Par exemple: .bashrc

$ ls .bashrc
.bashrc

L'option -a (pour all) de ls permet d'afficher aussi les fichiers cachés.

$ ls -a
.          Documents  examples.desktop      Modèles  Téléchargements
..         Vidéos     Bureau     Images     Musique  Public
.bashrc    snap

Chemins relatifs

ls -a commence par afficher les « fichiers » . et ...
Ils représentent respectivement le répertoire courant (.) et son répertoire parent (..).

Ainsi, si vous voulez connaître les fichiers contenus dans le répertoire parent, vous pouvez utiliser le chemin relatif ...

$ ls ..
parmentf
houdry

En l'occurrence, et en supposant qu'on se trouve dans le répertoire par défaut (aussi appelé home directory), l'appel à ls .. montre les répertoires par défaut de tous les utilisateurs de l'ordinateur.

De même, ls . est strictement équivalent à ls, il liste les fichiers du répertoire courant.

Mais on peut composer un chemin en joignant des noms de répertoires avec le caractère /.

📗 À noter: sous Windows, le caractère correspondant est \.

Au minimum ls ./ est strictement équivalent à ls . et donc à ls.

Mais on peut aller plus loin en faisant ls ./Documents, voire ls ./Documents/Unix.

Comme .. est un chemin relatif, on peut aussi l'utiliser.
Par exemple ls ../houdry/Documents permet de lister les fichiers du répertoire Documents de l'utilisateur Unix houdry.

💡 Les chemins relatifs sont utilisables comme paramètres de toutes les commandes attendant un chemin de fichier (typiquement cat, cp, mv, rm, ...)

💡 Les chemins relatifs évitent d'avoir à utiliser la commande cd pour se mettre dans le répertoire où se trouve le(s) fichier(s) à utiliser.

Chemins absolus

Un chemin absolu est un chemin qui précise la localisation d'un fichier depuis la racine de l'arborescence des fichiers.

Il commence obligatoirement par le caractère /.

⚠️ Tout chemin de fichier commençant par un caractère différent de / est un chemin relatif !
Il est relatif au répertoire courant.

Sur un système Ubuntu (distribution Linux très répandue), voici les répertoires présents à la racine.

$ ls /
bin    dev   initrd.img      lib64       mnt   root  snap  tmp  vmlinuz
boot   etc   initrd.img.old  lost+found  opt   run   srv   usr  vmlinuz.old
cdrom  home  lib             media       proc  sbin  sys   var

Ces répertoires peuvent varier selon les distributions, mais globalement:

  • bin: contient des binaires (des exécutables, dont la plupart des commandes déjà citées)
  • cdrom: permet d'accéder éventuellement à un CD-ROM dans son lecteur
  • etc: des fichiers liés aux applications du système (configuration)
  • lib: des bibliothèques logicielles diverses
  • proc: des fichiers dynamiques liés à l'exécution du système (essayer cat /proc/uptime)
  • home: les répertoires par défaut des utilisateurs du système
  • opt: des logiciels alternatifs
  • sbin: des commandes système
  • tmp: fichiers temporaires (nettoyé à chaque démarrage)
  • var: données liées à certains logiciels

pwd donne le chemin courant absolu:

$ pwd
/home/parmentf

Ainsi le répertoire ./Documents à partir du répertoire par défaut de parmentf a pour chemin absolu /home/parmentf/Documents.
L'avantage est qu'il univoque, alors qu'un chemin relatif dépend entièrement du répertoire où on se trouve quand on l'utilise.