Linux stat command summary with examples
Inhoudsopgave:
- Het
stat
commando gebruiken - Informatie weergeven over het bestandssysteem
- Dereference (volg) Symlinks
- De uitvoer aanpassen
- Conclusie
stat
is een opdrachtregelprogramma dat gedetailleerde informatie weergeeft over bepaalde bestanden of bestandssystemen.
In dit artikel wordt uitgelegd hoe u de opdracht
stat
.
Het
stat
commando gebruiken
De syntaxis voor het
stat
commando is als volgt:
stat… FILE…
stat
accepteert een of meer invoerbestandsnamen en bevat een aantal opties die het opdrachtgedrag en de uitvoer regelen.
Laten we het volgende voorbeeld bekijken:
stat file.txt
De uitvoer ziet er ongeveer zo uit:
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: -
Wanneer aangeroepen zonder opties geeft
stat
de volgende bestandsinformatie weer:
- Bestand - De naam van het bestand. Grootte - De grootte van het bestand in bytes. Blokken - Het aantal toegewezen blokken dat het bestand in beslag neemt. Blok - De grootte in bytes van elk blok. Bestandstype - (bijv. Normaal bestand, map, symbolische link…) Apparaat - Apparaatnummer in hexadecimaal en decimaal.Inode - Inode-nummer.Links - Aantal harde links.Toegang - Bestandsmachtigingen in numerieke en symbolische methoden. Gebruikers - Gebruikers-ID en naam van de eigenaar. ID en naam van de eigenaar. Context - De SELinux-beveiligingscontext. Toegang - De laatste keer dat het bestand werd geopend. Wijzigen - De laatste keer dat de inhoud van het bestand werd gewijzigd. Wijzigen - De laatste keer dat het kenmerk of de inhoud van het bestand werd gewijzigd. Tijd voor het maken van bestanden (niet ondersteund in Linux).
Informatie weergeven over het bestandssysteem
Om informatie te krijgen over het bestandssysteem waar het gegeven bestand zich bevindt, in plaats van informatie over het bestand zelf, gebruikt u de optie
-f
, (
--file-system
):
stat -f file.txt
De uitvoer van de opdracht ziet er als volgt uit:
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
Wanneer
stat
wordt opgeroepen met de optie
-f
, wordt de volgende informatie weergegeven:
- Bestand - De naam van het bestand.ID - Bestandssysteem-ID in hex.Namelen - Maximale lengte van bestandsnamen.Fundamentele blokgrootte - De grootte van elk blok op het bestandssysteem.Blokken:
- Totaal - Aantal totale blokken in bestandssysteem. Gratis - Aantal vrije blokken in bestandssysteem. Beschikbaar - Aantal gratis blokken beschikbaar voor niet-rootgebruikers.
- Totaal - Aantal totale inodes in bestandssysteem. Gratis - Aantal gratis inodes in bestandssysteem.
Dereference (volg) Symlinks
stat
volgt standaard geen symlinks. Als u de opdracht uitvoert op een symlink, bevat de uitvoer informatie over de symlink, niet het bestand waarnaar deze verwijst:
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: -
Om de symlink te verwijderen (volgen) en informatie weer te geven over het bestand waarnaar de symlink verwijst, gebruikt u de optie
-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: -
De uitvoer aanpassen
De opdracht
stat
heeft twee opties waarmee u de uitvoer naar wens kunt aanpassen:
-c
, (
--format="format"
) en
--printf="format"
.
Het verschil tussen deze twee opties is dat wanneer twee of meer bestanden als operatoren worden gebruikt - formaat automatisch een nieuwe regel toevoegt na de uitvoer van elke operand. De
--printf
interpreteert backslash ontsnapt.
Er zijn veel indelingsrichtlijnen voor bestanden en bestandssystemen die kunnen worden gebruikt met
--format
en
--printf
.
Om bijvoorbeeld alleen het type bestand te bekijken dat u zou gebruiken:
stat --format="%F" /dev/null
character special file
U kunt een willekeurig aantal opmaakrichtlijnen combineren en desgewenst aangepaste scheidingstekens gebruiken. Het scheidingsteken kan een enkel teken of een tekenreeks zijn:
stat --format="%n, %F" /dev/null
/dev/null, character special file
Gebruik de optie
--printf
om speciale tekens zoals newline of tab te interpreteren:
stat --printf='Name: %n\nPermissions: %a\n' /etc
drukt een nieuwe regel af:
Name: /etc Permissions: 755
De
stat
kan de informatie ook in beknopte vorm weergeven. Dit formaat is handig voor het parseren door andere hulpprogramma's.
Roep de opdracht met de optie
-t
(
--terse
) aan om de uitvoer in terse vorm af te drukken:
stat -t /etc
/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096
Typ
man stat
of
stat --help
in uw terminal voor een volledige lijst van alle indelingsrichtlijnen voor bestanden en bestandssystemen.
Conclusie
De opdracht
stat
drukt informatie af over bepaalde bestanden en bestandssystemen.
In Linux zijn er verschillende andere opdrachten die informatie over bepaalde bestanden kunnen weergeven, waarbij
ls
de meest gebruikte is, maar het toont slechts een deel van de informatie die door het
stat
commando wordt verstrekt.
Chmod commando in linux (bestandsrechten)
In Linux wordt toegang tot de bestanden beheerd via de bestandsrechten, attributen en eigendom. Deze tutorial behandelt het gebruik van de opdracht chmod om de toegangsrechten van bestanden en mappen te wijzigen.
Pwd commando in linux (huidige werkmap)
De huidige werkmap is de map waarin de gebruiker momenteel werkt. In dit artikel laten we u zien hoe u uw huidige werkmap kunt bepalen met de opdracht pwd
Dmesg commando in linux
Het opdrachtregelprogramma dmesg drukt de kernelringbuffer af en bestuurt deze. Het is handig voor het onderzoeken van kernel boot berichten en het debuggen van hardware gerelateerde problemen.