Příkaz stat se používá v systému Linux/Unix k zobrazení podrobných informací o souborech a souborových systémech. Nejčastěji se používá k získání časových razítek souborů.
Příkaz Linux ls obvykle poskytuje základní podrobnosti o souboru, zatímco příkaz stat vytiskne další informace o souboru staženém z inode.
V této příručce se blíže podíváme na příkaz stat a jeho možnosti prostřednictvím příkladů.
Syntaxe:
$ stat <OPTION> <FILENAME>
1) Zkontrolujte stav souboru
Chcete-li zobrazit stav souboru, jako je velikost, odkazy na čísla inodů a časová razítka souboru, spusťte:
$ stat output.txt
Vypíše následující informace:
Soubor – Toto je název souboru.
Velikost – Toto je velikost běžného souboru v bajtech.
Blocks – Počet přidělených bloků určených pro soubor.
IO Block – Velikost každého bloku v bajtech.
Typ souboru – Určuje, o jaký typ souboru se jedná (zda běžný soubor, symbolický odkaz atd.).
Zařízení – Toto je číslo zařízení v desítkovém nebo hexadecimálním formátu.
Inode – Zobrazí číslo inodu.
Odkazy – Určuje počet pevných odkazů.
Přístup – zobrazí oprávnění k souboru v číselném nebo symbolickém formátu.
Uid – Toto je ID uživatele a jméno vlastníka.
Gid – ID skupiny a jméno vlastníka.
Kontext – Popisuje kontext zabezpečení SELinux.
Přístup – Ukazuje na poslední přístup k souboru.
Upravit – Ukazuje na poslední úpravu obsahu souboru.
Změnit – Toto je poslední změna metadat souboru.
2) Zkontrolujte stav souborového systému
Chcete-li vytisknout stav souborového systému, na kterém se soubor nachází, namísto poskytnutí informací o běžném souboru, použijte -f
nebo --file-system
možnost.
Například:
$ stat -f output.txt
Vypíše následující informace:
Soubor – Popisuje název souboru.
ID – Určuje systémové ID v šestnáctkové soustavě.
Namelen - Určuje maximální délku souboru.
Základní velikost bloku – Toto je velikost každého bloku v systému souborů.
Blokování:
Celkem – Ukazuje na celkový počet bloků v systému souborů.
Free – Počet volných bloků zbývajících v systému souborů.
Dostupné – počet volných bloků dostupných uživatelům bez oprávnění root.
Inody:
Celkem – Toto je celkový počet inodů v systému.
Zdarma – Toto je počet dostupných volných inodů.
4) Chcete-li sledovat symbolické odkazy
Příkaz stat se ve výchozím nastavení neřídí symbolickými odkazy. Když jej spustíte na symbolickém odkazu, výstup obsahuje informace o symbolickém odkazu, ale nikoli soubor, na který odkazuje.
$ stat /usr/share/zoneinfo/America/Cayman
Chcete-li sledovat symbolický odkaz a vytisknout informace o souboru, na který odkazuje, použijte volbu -L, jak je znázorněno:
$ stat -L /usr/share/zoneinfo/America/Cayman
5) Vlastní výstup
Místo tisku výchozího vlastního formátu můžete použít --printf
nebo --format
možnosti přizpůsobení výstupu příkazu stat.
Pomocí --printf musíte použít \n k tisku dvou nebo více souborových operandů na novém řádku. Například pro tisk čísla zařízení a inodu:
stat --printf='%d:%i\n' /usr /etc
Output
2048:63
2048:128001
Pomocí --format se standardně vytiskne nový řádek, například:
stat --format=%d:%i /usr /etc
Output
2048:63
2048:128001
Chcete-li vytisknout název souboru a čas poslední úpravy dat, zadejte:
stat --printf='Name: %n\nThe time of last data modification: %y\n' /usr
Output
Name: /usr
The time of last data modification: 2020-09-28 21:47:27.451120000 +0000
Chcete-li vytisknout uživatelské jméno vlastníka, typ souboru a celkovou velikost v bajtech, spusťte:
stat --format="%U,%F,%s" /usr
Output
stat --format="%U,%F,%s" /usr
root,directory,4096
6) Zobrazte informace ve stručné formě
Chcete-li vytisknout informace ve stručném formátu, použijte -t
možnost, která je užitečná pro analýzu jinými nástroji.
Závěr
Statistika je užitečný příkaz pro kontrolu časových razítek souborů, jako je úprava souboru nebo čas přístupu. V této příručce jsme se zabývali příkazem stat v Linuxu a zdůraznili několik příkladů použití.