stat
est un utilitaire de ligne de commande qui affiche des informations détaillées sur des fichiers ou des systèmes de fichiers donnés.
Cet article explique comment utiliser stat
commande.
Utilisation de la stat
Commande #
La syntaxe de stat
commande est la suivante :
stat [OPTION]... FILE...
stat
accepte une ou plusieurs entrées FILE
noms et comprend un certain nombre d'options qui contrôlent le comportement et la sortie de la commande.
Prenons l'exemple suivant :
stat file.txt
La sortie ressemblera à ceci :
File: file.txt
Size: 4030 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 13633379 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ linuxize) Gid: ( 1000/ linuxize)
Access: 2019-11-06 09:52:17.991979701 +0100
Modify: 2019-11-06 09:52:17.971979713 +0100
Change: 2019-11-06 09:52:17.971979713 +0100
Birth: -
Lorsqu'il est invoqué sans aucune option, stat
affiche les informations de fichier suivantes :
- Fichier - Le nom du fichier.
- Taille - La taille du fichier en octets.
- Blocs - Le nombre de blocs alloués que prend le fichier.
- Bloc IO - La taille en octets de chaque bloc.
- Type de fichier - (ex. fichier normal, répertoire, lien symbolique.)
- Appareil - Numéro d'appareil en hexadécimal et décimal.
- Inode - Numéro d'inode.
- Liens :nombre de liens physiques.
- Accès - Autorisations de fichier dans les méthodes numériques et symboliques.
- Uid - ID utilisateur et nom du propriétaire.
- Gid :ID de groupe et nom du propriétaire.
- Context - Le contexte de sécurité SELinux.
- Accès - La dernière fois que le fichier a été accédé.
- Modifier :la dernière fois que le contenu du fichier a été modifié.
- Modifier :la dernière fois que l'attribut ou le contenu du fichier a été modifié.
- Naissance :heure de création du fichier (non pris en charge sous Linux).
Affichage des informations sur le système de fichiers #
Pour obtenir des informations sur le système de fichiers où réside le fichier donné, au lieu d'informations sur le fichier lui-même, utilisez le -f
, (--file-system
) :
stat -f file.txt
La sortie de la commande ressemblera à ceci :
File: "package.json"
ID: 8eb53097b4494d20 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 61271111 Free: 25395668 Available: 22265851
Inodes: Total: 15630336 Free: 13979610
Quand stat
est invoqué avec le -f
option, il affiche les informations suivantes :
- Fichier - Le nom du fichier.
- ID - ID du système de fichiers en hexadécimal.
- Namelen - Longueur maximale des noms de fichiers.
- Taille de bloc fondamentale :la taille de chaque bloc sur le système de fichiers.
- Blocs :
- Total :nombre total de blocs dans le système de fichiers.
- Libre :nombre de blocs libres dans le système de fichiers.
- Disponible :nombre de blocs gratuits disponibles pour les utilisateurs non root.
- Inœuds :
- Total - Nombre total d'inodes dans le système de fichiers.
- Libre :nombre d'inodes libres dans le système de fichiers.
Déréférencer (Suivre) les liens symboliques #
Par défaut, stat
ne suit pas les liens symboliques. Si vous exécutez la commande sur un lien symbolique, la sortie inclura des informations sur le lien symbolique, et non sur le fichier vers lequel il pointe :
stat /etc/resolv.conf
File: /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
Size: 39 Blocks: 0 IO Block: 4096 symbolic link
Device: 801h/2049d Inode: 8126659 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-11-06 21:12:26.875956073 +0100
Modify: 2018-07-24 11:11:48.128794519 +0200
Change: 2018-07-24 11:11:48.128794519 +0200
Birth: -
Pour déréférencer (suivre) le lien symbolique et afficher des informations sur le fichier vers lequel pointe le lien symbolique, utilisez le -L
, (--dereference
) :
stat -L /etc/resolv.conf
File: /etc/resolv.conf
Size: 715 Blocks: 8 IO Block: 4096 regular file
Device: 17h/23d Inode: 989 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 101/systemd-resolve) Gid: ( 103/systemd-resolve)
Access: 2019-11-06 20:35:25.603689619 +0100
Modify: 2019-11-06 20:35:25.555689733 +0100
Change: 2019-11-06 20:35:25.555689733 +0100
Birth: -
Personnalisation de la sortie #
La stat
La commande a deux options qui vous permettent de personnaliser la sortie selon vos besoins :-c
, (--format="format"
) et --printf="format"
.
La différence entre ces deux options est que lorsque deux fichiers ou plus sont utilisés comme opérateurs --format
ajoute automatiquement une nouvelle ligne après la sortie de chaque opérande. Le --printf
interprète les échappements antislash.
Il existe de nombreuses directives de format pour les fichiers et les systèmes de fichiers qui peuvent être utilisées avec --format
et --printf
.
Par exemple, pour afficher uniquement le type de fichier, vous exécuteriez :
stat --format="%F" /dev/null
character special file
Vous pouvez combiner n'importe quel nombre de directives de formatage et éventuellement utiliser des séparateurs personnalisés entre elles. Le séparateur peut être un caractère unique ou une chaîne :
stat --format="%n,%F" /dev/null
/dev/null,character special file
Pour interpréter des caractères spéciaux comme une nouvelle ligne ou une tabulation, utilisez le --printf
choix :
stat --printf='Name: %n\nPermissions: %a\n' /etc
\n
imprime une nouvelle ligne :
Name: /etc
Permissions: 755
La stat
peut également afficher les informations sous une forme concise. Ce format est utile pour l'analyse par d'autres utilitaires.
Appelez la commande avec -t
(--terse
) option pour imprimer la sortie sous forme concise :
stat -t /etc
/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096
Pour une liste complète de toutes les directives de format pour les fichiers et le type de système de fichiers, man stat
ou stat --help
dans votre terminal.
Conclusion #
La stat
La commande affiche des informations sur les fichiers et les systèmes de fichiers donnés.
Sous Linux, plusieurs autres commandes peuvent afficher des informations sur des fichiers donnés, avec ls
étant le plus utilisé, mais il ne montre qu'une partie des informations fournies par le stat
commande.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.