Recherche de site Web

5 exemples de commandes 'stat' pour les débutants Linux


La commande stat est un utilitaire utile pour afficher l'état des fichiers ou du système de fichiers. Il récupère des informations telles que le type de fichier ; droits d'accès en octal et lisible par l'homme ; Chaîne de contexte de sécurité SELinux ; heure de naissance du fichier, dernier accès, dernière modification des données, dernier changement de statut en termes lisibles par l'homme et en secondes depuis Epoch, et bien plus encore.

Il dispose d'une option permettant de spécifier un format personnalisé au lieu du format par défaut, pour afficher les informations. Dans ce guide, nous examinerons cinq exemples de commandes stat pour les débutants sous Linux.

Vérifier l'état du fichier Linux

1. La manière la plus simple d'utiliser stat est de lui fournir un fichier comme argument. La commande suivante affichera la taille, les blocs, les blocs IO, le type de fichier, la valeur de l'inode, le nombre de liens et bien plus d'informations sur le fichier /var/log/syslog, comme indiqué dans la capture d'écran :

$ stat /var/log/syslog

File: '/var/log/syslog'
  Size: 26572     	Blocks: 56         IO Block: 4096   regular file
Device: 80ah/2058d	Inode: 8129076     Links: 1
Access: (0640/-rw-r-----)  Uid: (  104/  syslog)   Gid: (    4/     adm)
Access: 2018-04-06 09:42:10.987615337 +0530
Modify: 2018-04-06 11:09:29.756650149 +0530
Change: 2018-04-06 11:09:29.756650149 +0530
 Birth: -

Vérifier l'état du système de fichiers

2. Dans l'exemple précédent, la commande stat traitait le fichier d'entrée comme un fichier normal. Cependant, pour afficher l'état du système de fichiers au lieu de l'état du fichier, utilisez l'option -f.

$ stat -f /var/log/syslog

File: "/var/log/syslog"
    ID: ce97e63d2201c974 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 84769790   Free: 16012830   Available: 11700997
Inodes: Total: 21544960   Free: 20995459

Vous pouvez également fournir un répertoire/système de fichiers comme argument, comme indiqué.

$ stat -f /

File: "/"
    ID: ce97e63d2201c974 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 84769790   Free: 16056471   Available: 11744638
Inodes: Total: 21544960   Free: 21005263

Activer le suivi des liens symboliques

3. Puisque Linux prend en charge les liens (symbolique et liens physiques), certains fichiers peuvent avoir un ou plusieurs liens, ou ils peuvent même exister dans un système de fichiers.

Pour permettre à stat de suivre les liens, utilisez l'indicateur -L comme indiqué.

$ stat -L /

 File: '/'
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 80ah/2058d	Inode: 2           Links: 25
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-04-09 10:55:55.119150525 +0530
Modify: 2018-02-20 11:15:54.462893167 +0530
Change: 2018-02-20 11:15:54.462893167 +0530
 Birth: -

Utiliser un format personnalisé pour afficher les informations

4. stat vous permet également d'utiliser un format particulier ou personnalisé au lieu du format par défaut. L'indicateur -c est utilisé pour spécifier le format utilisé, il imprime une nouvelle ligne après chaque utilisation de la séquence de format.

Alternativement, vous pouvez utiliser l'option --printf qui permet l'interprétation des séquences d'échappement de barre oblique inverse et désactive l'impression d'une nouvelle ligne de fin. Vous devez utiliser \n dans le format pour imprimer une nouvelle ligne, par exemple.

stat --printf='%U\n%G\n%C\n%z\n' /var/log/secure

Signification des séquences de format pour les fichiers utilisés dans l'exemple ci-dessus :

  • %U – nom d'utilisateur du propriétaire
  • %G – nom du groupe du propriétaire
  • %C – Chaîne de contexte de sécurité SELinux
  • %z – heure du dernier changement de statut, lisible par l'homme

5. Voici un exemple qui montre l'utilisation de séquences de formats acceptées pour les systèmes de fichiers.

stat --printf='%n\n%a\n%b\n' /

Signification des séquences de format utilisées dans la commande ci-dessus.

  • %n – affiche le nom du fichier
  • %a – imprimer des blocs gratuits disponibles pour les non-superutilisateurs
  • %b – génère le total des blocs de données dans le système de fichiers

Imprimer les informations sous forme laconique

6. L'option -t peut être utilisée pour imprimer les informations sous une forme laconique.

$ stat -t /var/log/syslog

/var/log/syslog 12760 32 81a0 104 4 80a 8129076 1 0 0 1523251873 1523256421 1523256421 0 4096

Enfin, votre shell peut avoir sa propre version de stat, veuillez vous référer à la documentation de votre shell pour plus de détails sur les options qu'il prend en charge. Pour voir toutes les séquences de formats de sortie acceptées, reportez-vous à la page de manuel stat.

man stat 

Dans cet article, nous avons expliqué cinq exemples de commandes stat pour les débutants sous Linux. Utilisez le formulaire de commentaires ci-dessous pour poser des questions.