La stat
comando, incluso in GNU coreutils
pacchetto, fornisce una varietà di metadati, tra cui dimensione del file, posizione dell'inode, autorizzazioni di accesso e contesto SELinux e tempi di creazione e modifica, su file e filesystem. È un modo conveniente per raccogliere informazioni che di solito sono necessarie per acquisire diversi comandi.
Installazione di stat su Linux
Su Linux, probabilmente hai già il stat
comando installato perché fa parte di un pacchetto di utilità di base generalmente fornito in bundle con le distribuzioni Linux per impostazione predefinita.
Nel caso in cui tu non abbia stat
installato, puoi installare coreutils
con il tuo gestore di pacchetti.
In alternativa, puoi compilare coreutils dal codice sorgente.
Ottenere lo stato di un file
stat
in esecuzione fornisce un output di facile lettura su un file o una directory specifica.
$ stat planets.xml
File:planets.xml
Dimensioni:325 Blocchi:8 Blocco IO:4096 file normale
Dispositivo:fd03h/64771d Inode:140217 Link:1
/>Accesso:(0664/-rw-rw-r--) Uid:(1000/tux) Gid:(100/utenti)
Contesto:unconfined_u:object_r:user_home_t:s0
Accesso:2021 -08-17 18:26:57.281330711 +1200
Modifica:2021-08-17 18:26:58.738332799 +1200
Modifica:2021-08-17 18:26:58.738332799 +1200
Nascita:17-08-2021 18:26:57.281330711 +1200
Può essere facile da leggere, ma è comunque un sacco di informazioni. Ecco cosa stat
copre:
- File :il nome del file
- Taglia :la dimensione del file in byte
- Blocchi :il numero di blocchi sul disco rigido riservati per questo file
- Blocco IO :la dimensione di un blocco del filesystem
- file normale :il tipo di file (file normale, directory, filesystem)
- Dispositivo :il dispositivo in cui si trova il file
- Inode :il numero di inode in cui si trova il file
- Link :il numero di link al file
- Accesso, UID, GID :autorizzazioni file, utente e proprietario del gruppo
- Contesto :contesto SELinux
- Accesso, Modifica, Cambia, Nascita :il timestamp di accesso, modifica, modifica dello stato e creazione del file
Uscita concisa
Per le persone che conoscono bene l'output o vogliono analizzare l'output con altre utilità come awk, c'è il --terse
(-t
in breve) opzione, che formatta l'output senza intestazioni o interruzioni di riga.
$ stat --terse planets.xml
planets.xml 325 8 81b4 100977 100 fd03 140217 1 0 0 1629181617 1629181618 1629181618 1629181617 4096 unconfined_u:object_t:0Scegliere il proprio formato
Puoi definire il tuo formato per l'output usando il
--printf
opzione e una sintassi simile a printf. Ogni attributo riportato dastat
ha una sequenza di formato (%C
per il contesto SELinux,%n
per il nome del file e così via), in modo da poter scegliere cosa visualizzare in un rapporto.$ stat --printf="%n\n%C\n" planets.xml
planets.xml
unconfined_u:object_r:user_home_t:s0
$ $ stat --printf ="Nome:%n\nModificato:%y\n" planets.xml
Nome:planets.xml
Modificato:2021-08-17 18:26:58.738332799 +1200
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Ecco alcune sequenze di formati comuni:
- %a diritti di accesso
- %F tipo di file
- %n nome file
- %U nome utente
- %u ID utente
- %g ID gruppo
- %w momento della nascita
- %y tempo di modifica
Un elenco completo delle sequenze di formato è disponibile in stat
pagina man e coreutils
pagine informative.
Informazioni sul file
Se hai mai provato ad analizzare l'output di ls -l
, allora apprezzerai la flessibilità di stat
comando. Non hai sempre bisogno di tutte le informazioni predefinite che stat
fornisce, ma il comando è inestimabile quando ne hai bisogno in parte o in tutto. Sia che tu legga il suo output nel suo formato predefinito, sia che crei le tue query, stat
comando ti dà un facile accesso ai dati sui tuoi dati.