
stat
je nástroj příkazového řádku, který zobrazuje podrobné informace o daných souborech nebo souborových systémech.
Tento článek vysvětluje, jak používat stat
příkaz.
Použití stat
Příkaz #
Syntaxe pro stat
příkaz je následující:
stat [OPTION]... FILE...
stat
přijímá jeden nebo více vstupů FILE
jmen a obsahuje řadu voleb, které řídí chování a výstup příkazu.
Podívejme se na následující příklad:
stat file.txt
Výstup bude vypadat nějak takto:
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: -
Při vyvolání bez jakýchkoli možností stat
zobrazí následující informace o souboru:
- Soubor – Název souboru.
- Velikost – velikost souboru v bajtech.
- Blocks – Počet přidělených bloků, které soubor zabere.
- Vstupní blok – velikost každého bloku v bajtech.
- Typ souboru – (např. běžný soubor, adresář, symbolický odkaz.)
- Zařízení – Číslo zařízení v šestnáctkové a desetinné soustavě.
- Inode – Číslo inodu.
- Odkazy – počet pevných odkazů.
- Přístup – oprávnění k souboru v numerických a symbolických metodách.
- Uid – ID uživatele a jméno vlastníka.
- Gid – ID skupiny a jméno vlastníka.
- Kontext – kontext zabezpečení SELinux.
- Přístup – Poslední přístup k souboru.
- Upravit – Poslední změna obsahu souboru.
- Změnit – poslední změna atributu nebo obsahu souboru.
- Narození – Doba vytvoření souboru (nepodporováno v Linuxu).
Zobrazení informací o systému souborů #
Chcete-li získat informace o systému souborů, kde se daný soubor nachází, místo informací o souboru samotném použijte -f
, (--file-system
) možnost:
stat -f file.txt
Výstup příkazu bude vypadat takto:
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
Když stat
se vyvolá pomocí -f
zobrazí následující informace:
- Soubor – Název souboru.
- ID – ID systému souborů v hex.
- Namelen – Maximální délka názvů souborů.
- Velikost základního bloku – Velikost každého bloku v systému souborů.
- Blokuje:
- Celkem – Celkový počet bloků v systému souborů.
- Volné – Počet volných bloků v systému souborů.
- Dostupné – Počet volných bloků dostupných uživatelům bez oprávnění root.
- Inody:
- Celkem – Celkový počet inodů v systému souborů.
- Volný – Počet volných inodů v systému souborů.
Dereference (sledovat) symbolické odkazy #
Ve výchozím nastavení stat
nesleduje symbolické odkazy. Pokud příkaz spustíte na symbolickém odkazu, výstup bude obsahovat informace o symbolickém odkazu, nikoli soubor, na který odkazuje:
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: -
Chcete-li odkázat (sledovat) symbolický odkaz a zobrazit informace o souboru, na který symbolický odkaz odkazuje, použijte -L
, (--dereference
) možnost:
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: -
Přizpůsobení výstupu #
stat
příkaz má dvě možnosti, které vám umožní upravit výstup podle vašich potřeb:-c
, (--format="format"
) a --printf="format"
.
Rozdíl mezi těmito dvěma možnostmi je ten, že když jsou dva nebo více souborů použity jako operanty --format
automaticky přidá nový řádek po výstupu každého operandu. --printf
interpretuje úniky zpětného lomítka.
Existuje mnoho formátovacích direktiv pro soubory a systémy souborů, které lze použít s --format
a --printf
.
Chcete-li například zobrazit pouze typ souboru, spustili byste:
stat --format="%F" /dev/null
character special file
Můžete kombinovat libovolný počet formátovacích direktiv a volitelně mezi nimi používat vlastní oddělovače. Oddělovač může být jeden znak nebo řetězec:
stat --format="%n,%F" /dev/null
/dev/null,character special file
Chcete-li interpretovat speciální znaky, jako je nový řádek nebo tabulátor, použijte --printf
možnost:
stat --printf='Name: %n\nPermissions: %a\n' /etc
\n
vytiskne nový řádek:
Name: /etc
Permissions: 755
stat
může také zobrazovat informace ve stručné podobě. Tento formát je užitečný pro analýzu jinými nástroji.
Vyvolejte příkaz pomocí -t
(--terse
) možnost vytisknout výstup ve stručné podobě:
stat -t /etc
/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096
Úplný seznam všech formátovacích direktiv pro soubory a typ souborového systému naleznete v man stat
nebo stat --help
ve vašem terminálu.
Závěr č.
stat
příkaz vypíše informace o daných souborech a souborových systémech.
V Linuxu může několik dalších příkazů zobrazit informace o daných souborech pomocí ls
je nejpoužívanější, ale zobrazuje pouze část informací poskytovaných stat
příkaz.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.