Tijdstempels van Linux-bestanden begrijpen: mtime, ctime en atime

Tijdstempels van Linux-bestanden begrijpen: mtime, ctime en atime

Het Linux-besturingssysteem houdt drie tijdstempels bij voor elk bestand op uw systeem. Met deze tijdstempels kunt u ontdekken wanneer een bestand voor het laatst is bijgewerkt. Maar wat betekenen ze allemaal? En hoe kom je achter deze tijden voor een dossier? Is er een verschil als het gaat om mappen?





Een goed begrip van atime, ctime en mtime kan al deze vragen beantwoorden. Dit zijn de drie tijdstempels die Unix-bestandssystemen bijhouden. Als u ooit meer wilt weten over wat er is veranderd en wanneer, lees dan verder.





Wat zijn de drie Unix-tijdstempels?

Aan elk bestand zijn drie tijdstempels gekoppeld. Linux slaat deze op in de Unix-tijdformaat die seconden sinds het tijdperk meet. De drie tijdstempels worden gewoonlijk atime, ctime en mtime genoemd.





De mtime is de meest voorkomende en vaak de meest bruikbare. Het staat voor gewijzigde tijd . Dit is het tijdstip waarop de inhoud van het bestand voor het laatst naar de schijf is geschreven.

Iets anders is de ctime wat staat voor verander tijd . Deze tijdstempel houdt wijzigingen in metadata bij, zoals eigendom en machtigingen. Het omvat het hernoemen van een bestand, althans op typische moderne Linux-besturingssystemen. Maar het wordt ook bijgewerkt wanneer de inhoud van het bestand verandert, dus het is altijd zo up-to-date als de mtime.



De derde tijdstempel is de een tijd , waarin de laatste keer dat iemand het bestand heeft geopend, wordt opgeslagen.

hoe een psd-bestand te openen zonder photoshop

Hoe tijdstempels van toepassing zijn op mappen

Een Linux-directory is in wezen een lijst van de bestanden in die directory. Dus als u een bestand in een map maakt, wordt de mtime van die map bijgewerkt. Lijst van de bestanden in de map, met behulp van de ls commando werkt bijvoorbeeld de toegangstijd bij. En, net als bij een bestand, werkt het wijzigen van de machtigingen of naam van een map de ctime bij.





Hoe zit het met de aanmaaktijd?

Het zal je misschien verbazen om te horen dat Linux de aanmaaktijd eenvoudigweg niet bijhoudt. Je zou in eerste instantie kunnen aannemen dat ctime staat voor scheppingstijd. Je zou het ook kunnen zien als iets heel nuttigs om erachter te komen.

Veel toepassingen slaan bestanden op door ze elke keer opnieuw te maken. Dit zou het gebruik van een aanmaaktijd misleidend maken.





De verschillende tijdstempels bekijken

De eenvoudigste manier om tijdstempelinformatie te krijgen is met de ls opdracht . Het standaard lange formaat toont details voor de mtime:

$ date
Sat Mar 6 16:57:01 GMT 2021
$ echo 'hello, world' > tmp
$ ls -l tmp.txt
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

U kunt in plaats daarvan de atime weergeven met behulp van de -u vlag:

$ date
Sat Mar 6 16:59:33 GMT 2021
$ cat tmp
hello, world
$ ls -lu tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

De laatste regel bevestigt dat de mtime van dit bestand afwijkt van de atime. Gebruik ten slotte de -C vlag om ctime te bekijken:

$ date
Sat Mar 6 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2

Deze keer bevestigen we dat alle drie de keren verschillend en correct zijn: we hebben het bestand gewijzigd, vervolgens geopend en vervolgens gewijzigd, in die volgorde.

Een alternatief voor ls is de staat opdracht. Deze opdracht geeft details op laag niveau weer van de inode van het bestand. Het maakt het gemakkelijker om alle drie de keren tegelijk te controleren. Het lost ook het probleem van het niet-intuïtieve op -u vlag. Hier is een voorbeelduitvoer voor hetzelfde bestand:

$ stat tmp2
File: `tmp2'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-03-06 16:59:45.000000000 +0000
Modify: 2021-03-06 16:57:59.000000000 +0000
Change: 2021-03-06 17:02:43.000000000 +0000

Tijdstempels bijwerken

De aanraken commando wijzigt de wijzigings- en toegangstijden van een bestand. Het is ook een handige manier om een ​​leeg bestand te maken, wat het zal doen als het bestand nog niet bestaat:

heb geen toegang tot deze server
touch tmp

Standaard worden mtime en atime ingesteld op de huidige tijd. U kunt een andere tijd instellen met de -t vlag:

touch -t 202103061200 tmp

U kunt ook alleen mtime of atime instellen met de -m en -tot vlaggen respectievelijk:

touch -t 202103061300 -m tmp

Merk op dat de ctime altijd wordt bijgewerkt wanneer we de atime of mtime instellen.

Bestanden zoeken op basis van tijdstempels

De vind commando is een ander hulpmiddel dat werkt op tijdstempels. Het kan bestanden filteren op basis van atime, ctime of mtime. Bijvoorbeeld:

find . -amin 15

vindt bestanden die precies 15 minuten geleden zijn geopend, terwijl:

find . -mtime -2

vindt bestanden die in de afgelopen twee dagen zijn gewijzigd.

Linux houdt elk bestand drie keer bij

Het meest gebruikte tijdstempel van een bestand is mtime. Dit is bijvoorbeeld de datum en tijd die een bestandslijst laat zien. Maar de andere twee tijdstempels kunnen ook nuttig zijn, op voorwaarde dat u begrijpt waar ze naar verwijzen. Onthoud in het bijzonder altijd dat ctime staat voor verandering tijd, niet schepping tijd.

Commando's zoals touch en stat zijn nuttige leden van de Linux-opdrachtregeltoolbox. Deze opdrachten zullen uw Linux-workflow verbeteren doordat u snel nieuwe bestanden kunt maken.

Deel Deel Tweeten E-mail De Linux Commands Reference Cheat Sheet

Dit eenvoudige spiekbriefje helpt je in een mum van tijd vertrouwd te raken met de Linux-opdrachtregelterminal.

hoe weet je of je bluetooth is gehackt?
Lees volgende Gerelateerde onderwerpen
  • Linux
  • Bestandsbeheer
  • Linux Distro
Over de auteur Bobby Jack(58 artikelen gepubliceerd)

Bobby is een technologie-enthousiasteling die bijna twee decennia als softwareontwikkelaar heeft gewerkt. Hij is gepassioneerd door gaming, werkt als recensie-editor bij Switch Player Magazine en is ondergedompeld in alle aspecten van online publiceren en webontwikkeling.

Meer van Bobby Jack

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren