Betaalmethoden Abuse

Wat het commando stat doet in Linux

14.11.2021, 16:15

Elk bestand en elke map in het bestandssysteem heeft een zogenaamde Inode-structuur waarin de metadata van dit object zijn opgeslagen. Hierin worden de eigenaar, de eigenaarsgroep, de tijd van wijziging, aanmaak en toegang tot het bestand en andere informatie opgeslagen. Dit kan niet alleen worden gezien met behulp van debug-gereedschappen voor bestandssystemen. Bepaalde informatie wordt getoond door het hulpprogramma ls, maar als je meer nodig hebt, kun je het commando stat gebruiken. We zullen je nu vertellen hoe je dit commando in Linux gebruikt.

Wat het commando doet

De syntaxis van het commando is eenvoudig. Je moet opties opgeven en het pad naar het bestand waarvan je de informatie wilt zien:

$ stat [options] /path/to/file

Het is niet nodig om opties door te geven en er zijn er helemaal niet veel:

-L, dereference - laat bestandsinformatie zien in plaats van een symbolische link;

-f, --file-system - toont informatie over het bestandssysteem waarin het bestand zich bevindt;

-c, --format- staat je toe om het uitvoerformaat op te geven in plaats van het standaard formaat, elk bestand wordt uitgevoerd vanaf een nieuwe regel;

--printf - vergelijkbaar met --format, alleen voor een nieuwe regel moet je gebruiken ;

-t, --terse - toont informatie in een zeer beknopte vorm, op één regel;

--version - toont de versie van het hulpprogramma.

Laten we enkele voorbeelden van gebruik bekijken. Om informatie over een bestand te zien, is het voldoende om het programma zonder opties uit te voeren door het pad naar het bestand door te geven, bijvoorbeeld /etc/passwd:

$ stat /etc/passwd

Uitvoer van het programma:

Bestand- het pad naar het bestand waarover de informatie wordt getoond;

Size- de grootte van het bestand in bytes;

IO Block - de grootte van het bestandssysteemblok in bytes;

Blokken- aantal bestandssysteemblokken dat door het bestand wordt bezet;

Device- identifier van het apparaat, bijvoorbeeld HDD, waarop het bestand is opgeslagen;

Inode - uniek Inode-nummer van dit bestand;

Links- aantal harde links naar dit bestand;

Access - toegangsrechten tot het bestand;

Uid - identifier en naam van de gebruiker-eigenaar van het bestand;

Gid - identifier en naam van de bestandsgroep;

Access- de tijd van de laatste toegang tot het bestand;

Modify- tijdstip waarop de inhoud van het bestand voor het laatst is gewijzigd;

Gewijzigd- de tijd waarop de bestandsattributen of bestandsinhoud voor het laatst is gewijzigd;

Created(Geboorte) - gereserveerd voor het weergeven van de oorspronkelijke aanmaakdatum van het bestand, maar nog niet geïmplementeerd.

We moeten iets meer vertellen over de tijdsindeling. Bijvoorbeeld, de tijd van de laatste toegang tot het bestand is 2020-12-02 18:25:01.043831739 +0200. Deze tijd wordt getoond rekening houdend met de tijdzone. En de getallen +0200 geven aan dat de tijdzone op de computer die dit bestand heeft gemaakt of gewijzigd twee uur meer is dan UTC, d.w.z. Europa/Kiev in wintertijd.

Als je een symbolische link aan het hulpprogramma probeert door te geven, zal het alleen informatie van de Inode van de link zelf tonen:

$ stat /etc/passwdlin

Om informatie te zien over het bestand waarnaar de link verwijst, gebruik je de -L optie:

$ stat -L /etc/passwdlink

U kunt meer dan één bestand doorgeven:

$ stat /etc/passwd /etc/group

Om de uitvoer te formatteren kun je de volgende tekenreeksen gebruiken:

%A - toegangsrechten;

%b - aantal bezette blokken;

%F - bestandstype;

%g - bestandsgroep identifier;

%G - bestandsgroep naam;

%i - Inode identifier;

%n - bestandsnaam;

%s - bestandsgrootte;

%u - bestandseigenaar identificatiecode;

%U - naam bestandseigenaar;

%x - tijd van laatste toegang;

%y - tijd van laatste wijziging van de inhoud;

%z - tijd van laatste wijziging van inhoud of attributen.

Dit zijn niet alle mogelijke reeksen, je kunt er meer vinden in de Help van het hulpprogramma:

$ man stat

Laten we bijvoorbeeld alleen de naam van een bestand en de tijd van de laatste wijziging van de inhoud weergeven:

$ stat --printf "File %n has been modified %y " /etc/passwd /etc/group

Als je informatie wilt zien over het bestandssysteem waar het bestand zich bevindt, moet je de optie -f gebruiken:

$ stat -f /etc/passwd

Laten we eens kijken wat de velden betekenen die het hulpprogramma weergeeft:

Bestand- de naam van het bestand;

Type- type bestandssysteem;

ID - de identificatie van het bestandssysteem;

Naamlengte(Namelen) - de maximale lengte van de naam in het bestandssysteem;

Blokgrootte- de hoeveelheid gegevens in een lees- of schrijfverzoek voor optimale snelheid;

Fundamentele blokgrootte- fysieke blokgrootte in het bestandssysteem.

Daarna volgen het totale aantal blokken in het systeem en het aantal vrije blokken.