stat
příkaz, který je součástí GNU coreutils
poskytuje řadu metadat, včetně velikosti souboru, umístění inodu, přístupových oprávnění a kontextu SELinux a časů vytváření a úprav o souborech a souborových systémech. Je to pohodlný způsob shromažďování informací, k jejichž získání obvykle potřebujete několik různých příkazů.
Instalace statistik v systému Linux
V Linuxu již pravděpodobně máte stat
příkaz nainstalován, protože je součástí základního balíčku nástrojů, který je obvykle standardně dodáván s distribucemi Linuxu.
V případě, že nemáte stat
nainstalován, můžete nainstalovat coreutils
s vaším správcem balíčků.
Případně můžete zkompilovat coreutils ze zdrojového kódu.
Zjištění stavu souboru
Spuštění stat
poskytuje snadno čitelný výstup o konkrétním souboru nebo adresáři.
$ stat planets.xml
Soubor:planets.xml
Velikost:325 Bloků:8 IO Blok:4096 běžný soubor
Zařízení:fd03h/64771d Inode:140217 140217 Odkaz />Přístup:(0664/-rw-rw-r--) Uid:(1000/tux) Gid:(100/uživatelé)
Kontext:unconfined_u:object_r:user_home_t:s0
Přístup:2021 -08-17 18:26:57.281330711 +1200
Změnit:2021-08-17 18:26:58.738332799 +1200
Změnit:2021-08-17:569 19:538:00> Narození:2021-08-17 18:26:57.281330711 +1200
Možná se to snadno čte, ale i tak je to hodně informací. Zde je to, co stat
pokrývá:
- Soubor :název souboru
- Velikost :velikost souboru v bajtech
- Blokování :počet bloků na pevném disku vyhrazených pro tento soubor
- Vstupní blok :velikost bloku souborového systému
- běžný soubor :typ souboru (běžný soubor, adresář, souborový systém)
- Zařízení :zařízení, kde se soubor nachází
- Inode :číslo inodu, kde se soubor nachází
- Odkazy :počet odkazů na soubor
- Přístup, UID, GID :oprávnění k souboru, uživatel a vlastník skupiny
- Kontext :Kontext SELinux
- Přístup, úprava, změna, narození :časové razítko, kdy byl soubor otevřen, upraven, změněn stav a vytvořen
Stručný výstup
Pro lidi, kteří výstup dobře znají nebo chtějí výstup analyzovat pomocí jiných nástrojů, jako je awk, je tu --terse
(-t
zkráceně) možnost, která formátuje výstup bez nadpisů nebo zalomení řádků.
$ stat --terse planets.xml
planets.xml 325 8 81b4 100977 100 fd03 140217 1 0 0 1629181617 1629181618 162918161816 162918161816:09Výběr vlastního formátu
Můžete definovat svůj vlastní formát pro výstup pomocí
--printf
volba a syntaxe podobná printf. Každý atribut hlášenýstat
má sekvenci formátu (%C
pro kontext SELinux%n
pro název souboru atd.), takže si můžete vybrat, co chcete ve zprávě vidět.$ stat --printf="%n\n%C\n" planets.xml
planets.xml
unconfined_u:object_r:user_home_t:s0
$ $ stat --printf ="Název:%n\nUpraveno:%y\n" planets.xml
Název:planety.xml
Upraveno:2021-08-17 18:26:58.738332799 +1200
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Zde jsou některé běžné sekvence formátů:
- %a přístupová práva
- %F typ souboru
- %n název souboru
- %U uživatelské jméno
- %u ID uživatele
- %g ID skupiny
- %w čas narození
- %y čas úpravy
Úplný seznam formátovacích sekvencí je k dispozici v stat
manuálová stránka a coreutils
informační stránky.
Informace o souboru
Pokud jste se někdy pokusili analyzovat výstup ls -l
, pak oceníte flexibilitu stat
příkaz. Ne vždy potřebujete každý bit výchozích informací, které stat
poskytuje, ale příkaz je neocenitelný, když jej potřebujete některé nebo všechny. Ať už čtete jeho výstup v jeho výchozím formátu, nebo vytváříte vlastní dotazy, stat
vám poskytuje snadný přístup k datům o vašich datech.