Ricerca nel sito web

5 esempi di comandi 'stat' per principianti di Linux


Il comando stat è un'utilità utile per visualizzare lo stato del file o del file system. Recupera informazioni come il tipo di file; diritti di accesso in formato ottale e leggibile dall'uomo; Stringa del contesto di sicurezza SELinux; ora di nascita del file, ultimo accesso, ultima modifica dei dati, ultimo cambiamento di stato sia in formato leggibile che in secondi da Epoch e molto altro.

Ha un'opzione per specificare un formato personalizzato invece di quello predefinito, per la visualizzazione delle informazioni. In questa guida esamineremo cinque esempi di comandi stat per i principianti di Linux.

Controlla lo stato del file Linux

1. Il modo più semplice per utilizzare stat è fornirgli un file come argomento. Il seguente comando visualizzerà la dimensione, i blocchi, i blocchi IO, il tipo di file, il valore dell'inode, il numero di collegamenti e molte altre informazioni sul file /var/log/syslog, come mostrato nello screenshot:

$ 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: -

Controlla lo stato del file system

2. Nell'esempio precedente, il comando stat trattava il file di input come un file normale, tuttavia, per visualizzare lo stato del file system anziché lo stato del file, utilizzare l'opzione -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

Puoi anche fornire una directory/filesystem come argomento come mostrato.

$ 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

Abilita il seguito di collegamenti simbolici

3. Poiché Linux supporta i collegamenti (simbolici e collegamenti fisici), alcuni file potrebbero avere uno o più collegamenti o potrebbero addirittura esistere in un filesystem.

Per consentire a stat di seguire i collegamenti, utilizza il flag -L come mostrato.

$ 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: -

Utilizza un formato personalizzato per visualizzare le informazioni

4. stat ti consente anche di utilizzare un formato particolare o personalizzato invece di quello predefinito. Il flag -c viene utilizzato per specificare il formato utilizzato, stampa una nuova riga dopo ogni utilizzo della sequenza del formato.

In alternativa, puoi utilizzare l'opzione --printf che abilita l'interpretazione delle sequenze di escape della barra rovesciata e disattiva la stampa di un fine riga finale. È necessario utilizzare \n nel formato per stampare una nuova riga, ad esempio.

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

Significato delle sequenze di formato per i file utilizzati nell'esempio precedente:

  • %U – nome utente del proprietario
  • %G – nome del gruppo del proprietario
  • %C – Stringa del contesto di sicurezza SELinux
  • %z – ora dell'ultimo cambiamento di stato, leggibile dall'uomo

5. Ecco un esempio che mostra l'utilizzo di sequenze di formati accettati per i file system.

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

Significato delle sequenze di formato utilizzate nel comando precedente.

  • %n: mostra il nome del file
  • %a: stampa blocchi gratuiti disponibili ai non superutenti
  • %b: restituisce i blocchi di dati totali nel file system

Stampa le informazioni in forma concisa

6. L'opzione -t può essere utilizzata per stampare le informazioni in forma concisa.

$ stat -t /var/log/syslog

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

Come ultima nota, la tua shell potrebbe avere una propria versione di stat, fai riferimento alla documentazione della tua shell per dettagli sulle opzioni che supporta. Per vedere tutte le sequenze dei formati di output accettati, fare riferimento alla pagina man stat.

man stat 

In questo articolo, abbiamo spiegato cinque esempi di comandi stat per i principianti di Linux. Utilizza il modulo di feedback qui sotto per porre qualsiasi domanda.