La commande stat est utilisée dans le système Linux/Unix pour afficher des informations détaillées sur les fichiers et les systèmes de fichiers. Il est le plus souvent utilisé pour obtenir des horodatages de fichiers.
La commande Linux ls vous donne généralement des détails de base sur un fichier tandis que la commande stat imprime des informations supplémentaires sur le fichier extrait de l’inode.
Dans ce guide, nous examinons de plus près la commande stat et ses options à travers des exemples.
Syntaxe:
$ stat <OPTION> <FILENAME>
1) Vérifier l’état d’un fichier
Pour afficher un état de fichier tel que la taille, les liens de numéro d’inode et les horodatages de fichier, exécutez :
$ stat output.txt
Affiche les informations suivantes :
Fichier – Ceci est le nom du fichier.
Taille – Il s’agit de la taille du fichier normal en octets.
Blocs – Le nombre de blocs alloués désignés pour le fichier.
Bloc E/S – La taille en octets de chaque bloc.
Type de fichier – Spécifie le type de fichier (fichier normal, lien symbolique, etc.).
Périphérique – Il s’agit du numéro de périphérique au format décimal ou hexadécimal.
Inode – Affiche le numéro d’inode.
Liens – Spécifie le nombre de liens physiques.
Accès – Ceci présente les autorisations de fichier au format numérique ou symbolique.
Uid – Il s’agit de l’ID utilisateur et du nom du propriétaire.
Gid – L’ID de groupe et le nom du propriétaire.
Contexte – Ceci décrit le contexte de sécurité SELinux.
Accès – Indique la dernière fois qu’un fichier a été accédé.
Modifier – Indique la dernière fois que le contenu d’un fichier a été modifié.
Modifier – C’est la dernière fois que les métadonnées du fichier ont été modifiées.
2) Vérifier l’état du système de fichiers
Pour imprimer l’état du système de fichiers sur lequel réside le fichier au lieu de donner des informations sur le fichier normal, utilisez -f
ou --file-system
option.
Pour example:
$ stat -f output.txt

Affiche les informations suivantes :
Fichier – Décrit le nom du fichier.
ID – Spécifie l’ID système en hexadécimal.
Namelen – Spécifie la longueur maximale du fichier.
Taille de bloc fondamentale – Il s’agit de la taille de chaque bloc sur un système de fichiers.
Blocs :
Total – Ceci indique le nombre total de blocs dans le système de fichiers.
Libre – Nombre de blocs libres restants dans le système de fichiers.
Disponible – Le nombre de blocs gratuits disponibles pour les utilisateurs non root.
Inodes :
Total – Il s’agit du nombre total d’inodes dans le système.
Gratuit – Il s’agit du nombre d’inodes gratuits disponibles.
4) Pour suivre les liens symboliques
La commande stat ne suit pas les liens symboliques par défaut. Lorsque vous l’exécutez sur un lien symbolique, la sortie comprend des informations sur le lien symbolique mais pas sur le fichier vers lequel il pointe.
$ stat /usr/share/zoneinfo/America/Cayman

Pour suivre le lien symbolique et imprimer des informations sur le fichier vers lequel il pointe, utilisez l’option -L comme indiqué :
$ stat -L /usr/share/zoneinfo/America/Cayman

5) sortie personnalisée
Au lieu d’imprimer le format personnalisé par défaut, vous pouvez utiliser le --printf
ou --format
options pour personnaliser la sortie de la commande stat.
En utilisant –printf, vous devez utiliser n pour imprimer en nouvelle ligne deux opérandes de fichier ou plus. Pour example pour imprimer le périphérique et le numéro d’inode :
stat --printf="%d:%in" /usr /etc
Output
2048:63
2048:128001
En utilisant –format, il imprime une nouvelle ligne par défaut, pour example:
stat --format=%d:%i /usr /etc
Output
2048:63
2048:128001
Pour imprimer le nom du fichier et l’heure de la dernière modification des données, tapez :
stat --printf="Name: %nnThe time of last data modification: %yn" /usr
Output
Name: /usr
The time of last data modification: 2020-09-28 21:47:27.451120000 +0000
Pour imprimer le nom d’utilisateur du propriétaire, le type de fichier et la taille totale en octets, exécutez :
stat --format="%U,%F,%s" /usr
Output
stat --format="%U,%F,%s" /usr
root,directory,4096
6) Afficher les informations sous forme laconique
Pour imprimer des informations au format concis, utilisez le -t
option, qui est utile pour l’analyse par d’autres outils.

Conclusion
La stat est une commande pratique pour vérifier les horodatages des fichiers tels que la modification du fichier ou l’heure d’accès. Dans ce guide, nous avons couvert la commande stat sous Linux et mis en évidence quelques example usages.