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.