GOTO 2019 • Mastering the Linux Command Line • Bert Jan Schrijver
Innehållsförteckning:
- Använda kommandot
stat - Visa information om filsystemet
- Dereference (Följ) Symlinks
- Anpassa utgången
- Slutsats
stat
är ett kommandoradsverktyg som visar detaljerad information om givna filer eller filsystem.
Den här artikeln förklarar hur man använder
stat
kommando.
Använda kommandot
stat
Syntaxen för kommandot
stat
är som följer:
stat… FILE…
stat
accepterar ett eller flera inmatade
FILE
namn och innehåller ett antal alternativ som kontrollerar kommandobeteendet och utdata.
Låt oss ta en titt på följande exempel:
stat file.txt
Utgången ser ut så här:
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: -
När den åberopas utan några alternativ visar
stat
följande filinformation:
- Fil - Namnet på filen. Storlek - Storleken på filen i byte. Block - Antalet tilldelade block som filen tar.IO Block - Storleken i byte för varje block. Filtyp - (ex. Vanlig fil, katalog, symbolisk länk…) Enhet - Enhetsnummer i hex och decimal.Inode - Inodenummer.Länkar - Antal hårda länkar.Tillgång - Filbehörigheter i numeriska och symboliska metoder.Uid - Användar-ID och namn på ägaren.Gid - Grupp Ägarens ID och namn.Kontekst - SELinux-säkerhetsförhållanden. Tillgång - Sista gången filen öppnades. Ändra - Förra gången filens innehåll ändrades.Ändra - Sista gången filens attribut eller innehåll ändrades. Födelse - Skapa tid för fil (stöds inte i Linux).
Visa information om filsystemet
För att få information om filsystemet där den givna filen finns, istället för information om själva filen, använd alternativet
-f
, (
--file-system
):
stat -f file.txt
Utgången från kommandot ser ut så här:
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
När
stat
aktiveras med alternativet
-f
, visar det följande information:
- Fil - Namnet på filen.ID - Filsystem-ID i hex.Namelen - Maximal längd på filnamn. Grundläggande blockstorlek - Storleken på varje block på filsystemet. Lås:
- Totalt - Antal totala block i filsystem. Gratis - Antal gratis block i filsystem.Tillgängligt - Antal gratis block tillgängliga för icke-root-användare.
- Totalt - Antal totala inoder i filsystem. Gratis - Antal gratis inoder i filsystem.
Dereference (Följ) Symlinks
Som standard följer
stat
inte symlänkar. Om du kör kommandot på en symlink kommer utgången att innehålla information om symlänken, inte filen den pekar på:
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: -
För att återföra (följ) symlänken och visa information om den fil som symlänken pekar till, använd alternativet
-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: -
Anpassa utgången
stat
kommandot har två alternativ som gör att du kan anpassa utdata efter dina behov:
-c
, (
--format="format"
) och
--printf="format"
.
Skillnaden mellan dessa två alternativ är att när två eller flera filer används som operanter
--format
lägger
--format
automatiskt till en ny linje efter varje operands utgång.
--printf
tolkar
--printf
fly.
Det finns många formatdirektiv för filer och filsystem som kan användas med -
--format
och
--printf
.
Om du till exempel bara vill visa den filtyp du använder:
stat --format="%F" /dev/null
character special file
Du kan kombinera valfritt antal formateringsdirektiv och eventuellt använda anpassade separatorer mellan dem. Separatorn kan vara ett enda tecken eller en sträng:
stat --format="%n, %F" /dev/null
/dev/null, character special file
För att tolka specialtecken som newline eller tab, använd alternativet
--printf
:
stat --printf='Name: %n\nPermissions: %a\n' /etc
skriver ut en ny rad:
Name: /etc Permissions: 755
stat
kan också visa informationen i snäv form. Detta format är användbart för att analysera av andra verktyg.
Anropa kommandot med alternativet
-t
(
--terse
) för att skriva ut utgången i spänd form:
stat -t /etc
/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096
För en komplett lista över alla formatdirektiv för filer och filsystem skriver
man stat
eller
stat --help
i din terminal.
Slutsats
stat
kommandot skriver ut information om givna filer och filsystem.
I Linux finns det flera andra kommandon som kan visa information om givna filer, varvid det är det mest använda, men det visar bara en bit av den information som tillhandahålls av
stat
kommandot.
Chmod-kommando i Linux (filtillstånd)
I Linux hanteras åtkomst till filerna genom filtillstånd, attribut och äganderätt. Den här handboken beskriver hur du använder chmod-kommandot för att ändra åtkomstbehörigheter för filer och kataloger.
Chgrp-kommando i Linux (ändra grupp)
I Linux är varje fil associerad med en ägare och en grupp och har behörigheter som avgör vilka användare som kan läsa, skriva eller köra filen. Chgrpc-kommandot ändrar gruppägande av givna filer.
Cp-kommando i Linux (kopiera filer)
cp är ett kommandoradsverktyg för att kopiera filer och kataloger på Unix och Linux-system.







