Skip to main content

2.4 - Types de fichiers et liens

Linux représente de nombreuses ressources sous forme de fichiers : documents, dossiers, périphériques, sockets et liens.

Identifier un type de fichier

file document.pdf
file image-sans-extension
stat document.pdf
ls -l document.pdf

Le début de ls -l indique le type :

Caractère Type
- fichier ordinaire
d dossier
l lien symbolique
b périphérique bloc, par exemple un disque
c périphérique caractère
s socket
p tube nommé

Lien symbolique

Un lien symbolique contient un chemin vers une autre ressource. Il ressemble à un raccourci.

ln -s /srv/app/config.yml ~/config-app.yml
ls -l ~/config-app.yml
readlink ~/config-app.yml
readlink -f ~/config-app.yml

Si la cible est déplacée ou supprimée, le lien devient cassé. Rechercher les liens cassés sous le dossier actuel :

find . -xtype l -print

Lien physique

Un lien physique est un second nom vers les mêmes données sur le même système de fichiers.

ln rapport.txt rapport-alias.txt
ls -li rapport.txt rapport-alias.txt

Les deux noms affichent le même numéro d'inode. Modifier l'un modifie le contenu visible par l'autre. Supprimer un nom ne détruit les données que lorsqu'aucun lien physique ne les référence plus et qu'aucun processus ne les maintient ouvertes.

Les liens physiques ne traversent généralement pas les systèmes de fichiers et ne s'appliquent normalement pas aux dossiers.

Extension et contenu réel

Linux ne dépend pas uniquement de l'extension :

file sauvegarde
file --mime-type sauvegarde

Un fichier nommé .jpg peut ne pas être une image. file examine sa signature, sans garantir pour autant qu'il est sûr.

Informations utiles avec stat

stat -c 'Nom=%n Taille=%s octets Droits=%A Propriétaire=%U Groupe=%G' fichier

Sur BSD ou macOS, les options de stat diffèrent. Les exemples ci-dessus visent les outils GNU courants sous Linux.