Blocos, Superblocos e Inodes - Noções Básicas e comandos stat e dumpe2fs - Linux
Sommario:
- Usando il comando
stat
- Visualizzazione delle informazioni sul file system
- Dereference (Segui) Symlink
- Personalizzazione dell'output
- Conclusione
stat
è un'utilità della riga di comando che visualizza informazioni dettagliate su determinati file o file system.
Questo articolo spiega come utilizzare il comando
stat
.
Usando il comando
stat
La sintassi per il comando
stat
è la seguente:
stat… FILE…
stat
accetta uno o più nomi
FILE
input e include una serie di opzioni che controllano il comportamento e l'output del comando.
Diamo un'occhiata al seguente esempio:
stat file.txt
L'output sarà simile al seguente:
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: -
Quando viene invocato senza alcuna opzione,
stat
visualizza le seguenti informazioni sul file:
- File - Il nome del file.Size - La dimensione del file in byte.Blocks - Il numero di blocchi allocati che il file accetta.IO Block - La dimensione in byte di ogni blocco. Tipo di file - (es. File normale, directory, collegamento simbolico…) Dispositivo: numero del dispositivo in formato esadecimale e decimale; nodo - numero di nodo. collegamenti - numero di collegamenti fissi. accesso - autorizzazioni per i file nei metodi numerici e simbolici. utente - ID utente e nome del proprietario. gruppo - gruppo ID e nome del proprietario.Contesto - Il contesto di sicurezza di SELinux. Accesso - L'ultima volta che è stato effettuato l'accesso al file. Modifica - L'ultima volta che è stato modificato il contenuto del file. Cambia - L'ultima volta che è stato modificato l'attributo o il contenuto del file. Nascita - Tempo di creazione del file (non supportato in Linux).
Visualizzazione delle informazioni sul file system
Per ottenere informazioni sul file system in cui risiede il file specificato, anziché le informazioni sul file stesso, utilizzare l'opzione
-f
, (
--file-system
):
stat -f file.txt
L'output del comando sarà simile al seguente:
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
Quando
stat
viene invocato con l'opzione
-f
, mostra le seguenti informazioni:
- File - Il nome del file.ID - ID del file system in hex.Namelen - Lunghezza massima dei nomi dei file. Dimensione del blocco fondamentale - La dimensione di ciascun blocco sul file system.
- Totale - Numero di blocchi totali nel file system. Gratuito - Numero di blocchi liberi nel file system. Disponibile - Numero di blocchi liberi disponibili per utenti non root.
- Totale: numero di inode totali nel file system. Gratuito: numero di inode gratuiti nel file system.
Dereference (Segui) Symlink
Per impostazione predefinita,
stat
non segue i collegamenti simbolici. Se si esegue il comando su un collegamento simbolico, l'output includerà informazioni sul collegamento simbolico, non sul file a cui punta:
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: -
Per dereferenziare (seguire) il collegamento simbolico e visualizzare le informazioni sul file a cui punta il
--dereference
simbolico, utilizzare l'opzione
-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: -
Personalizzazione dell'output
Il comando
stat
ha due opzioni che ti consentono di personalizzare l'output in base alle tue esigenze:
-c
, (
--format="format"
) e
--printf="format"
.
La differenza tra queste due opzioni è che quando due o più file vengono utilizzati come operatori, il
--format
aggiunge automaticamente una nuova riga dopo l'output di ciascun operando.
--printf
interpreta le
--printf
backslash.
Esistono molte direttive di formato per file e file system che possono essere utilizzate con
--format
e
--printf
.
Ad esempio, per visualizzare solo il tipo di file utilizzare:
stat --format="%F" /dev/null
character special file
È possibile combinare un numero qualsiasi di direttive di formattazione e facoltativamente utilizzare separatori personalizzati tra di loro. Il separatore può essere un singolo carattere o una stringa:
stat --format="%n, %F" /dev/null
/dev/null, character special file
Per interpretare caratteri speciali come newline o tab, usa l'opzione
--printf
:
stat --printf='Name: %n\nPermissions: %a\n' /etc
stampa una nuova riga:
Name: /etc Permissions: 755
La
stat
può anche visualizzare le informazioni in forma concisa. Questo formato è utile per l'analisi da parte di altre utilità.
Richiamare il comando con l'opzione
-t
(
--terse
) per stampare l'output in forma concisa:
stat -t /etc
/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096
Per un elenco completo di tutte le direttive di formato per file e file system, digita
man stat
o
stat --help
nel tuo terminale.
Conclusione
Il comando
stat
stampa informazioni su determinati file e file system.
In Linux, ci sono molti altri comandi che possono visualizzare informazioni su determinati file, con
ls
è il più usato, ma mostra solo una parte delle informazioni fornite dal comando
stat
.
Cogli la riga di comando con il comando Take
Integra il prompt dei comandi, la GUI e un potente linguaggio batch con il potente toolkit Take Command.
Comando chmod in linux (permessi dei file)
In Linux l'accesso ai file è gestito attraverso le autorizzazioni, gli attributi e la proprietà dei file. Questa esercitazione illustra come utilizzare il comando chmod per modificare le autorizzazioni di accesso a file e directory.
Comando chgrp in linux (cambia gruppo)
In Linux, ogni file è associato a un proprietario e un gruppo e dispone di autorizzazioni che determinano quali utenti possono leggere, scrivere o eseguire il file. Il comando chgrpc modifica la proprietà del gruppo di determinati file.