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 IO - La taille en octets de chaque bloc.
Type de fichier - Spécifie le type de fichier (que ce soit un fichier normal, un 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 - Cela 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 - Il s'agit de 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.
Par exemple :
$ stat -f output.txt
Affiche les informations suivantes :
Fichier -Décrit le nom du fichier.
ID - Spécifie l'ID du 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 restant dans le système de fichiers.
Disponible - Le nombre de blocs gratuits disponibles pour les utilisateurs non root.
Inœuds :
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 saut de ligne deux opérandes de fichier ou plus. Par exemple, pour imprimer le numéro de périphérique et d'inode :
stat --printf='%d:%i\n' /usr /etc
Output
2048:63
2048:128001
En utilisant --format, il imprime une nouvelle ligne par défaut, par exemple :
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: %n\nThe time of last data modification: %y\n' /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 une forme concise
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 de fichiers tels que la modification de fichier ou l'heure d'accès. Dans ce guide, nous avons couvert la commande stat sous Linux et mis en évidence quelques exemples d'utilisation.