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 om mappen gaat?
Een goed begrip van atime, ctime en mtime kan al deze vragen beantwoorden. Dit zijn de drie tijdstempels die Unix-bestandssystemen volgen. Als u ooit details wilt weten over wat er is veranderd en wanneer, lees dan verder.
Wat zijn de drie Unix-tijdstempels?
Elk bestand heeft drie bijbehorende tijdstempels. Linux slaat deze op in het Unix-tijdformaat die seconden meet sinds het tijdperk. 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. Het is de tijd waarop de inhoud van het bestand voor het laatst naar schijf is geschreven.
Iets anders is de ctime wat staat voor verander tijd
. Dit tijdstempel houdt metagegevenswijzigingen bij, zoals eigendom en machtigingen. Het omvat het hernoemen van een bestand - tenminste op typische moderne Linux-besturingssystemen. Maar het wordt ook bijgewerkt wanneer de inhoud van het bestand verandert, dus het is altijd net zo up-to-date als de mtime.Het derde tijdstempel is het een tijd, dat de laatste keer dat iemand het bestand heeft geopend opslaat.
Hoe tijdstempels van toepassing zijn op telefoonboeken
Een Linux-directory is in wezen een lijst met de bestanden in die directory. Dus als u een bestand in een map maakt, wordt de mtime van die map bijgewerkt. De bestanden in de directory weergeven met behulp van de ls commando, werkt bijvoorbeeld de toegangstijd bij. En, net als bij een bestand, wordt door het wijzigen van de machtigingen of naam van een directory de tijd bijgewerkt.
Hoe zit het met de scheppingsperiode?
Het zal je misschien verbazen te horen dat Linux simpelweg de aanmaaktijd niet bijhoudt. Dat zou je in eerste instantie kunnen aannemen ctime staat voor creatie tijd. Evenzo zou je het als iets heel nuttigs kunnen beschouwen om erachter te komen.
Veel toepassingen slaan bestanden op door ze elke keer helemaal opnieuw te maken. Dit zou het gebruik van een creatietijd misleidend maken.
Hoe de verschillende tijdstempels te bekijken
De eenvoudigste manier om tijdstempelinformatie te krijgen, is met de ls opdracht. Het standaard lange formaat toont details voor de mtime:
$ datum
Zat 6 maart 16:57:01 GMT 2021
$ echo "hallo, wereld"> tmp
$ ls -l tmp.txt
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp
U kunt in plaats daarvan het atime weergeven door de -u vlag:
$ datum
Zat 6 maart 16:59:33 GMT 2021
$ cat tmp
Hallo Wereld
$ 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 verschilt van de atime. Gebruik ten slotte de -c vlag om ctime te bekijken:
$ datum
Zat 6 maart 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 stat 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 omzeilt ook het probleem van het niet-intuïtieve -u vlag. Hier is een voorbeelduitvoer voor hetzelfde bestand:
$ stat tmp2
Bestand: `tmp2 '
Grootte: 13 blokken: 8 IO-blok: 4096 normaal bestand
Apparaat: 801h / 2049d Inode: 327688 Links: 1
Toegang: (0644 / -rw-r - r--) Uid: (1000 / ubuntu) Gid: (1000 / ubuntu)
Toegang: 2021-03-06 16:59: 45.000000000 +0000
Wijzigen: 2021-03-06 16: 57: 59.000000000 +0000
Wijzigen: 2021-03-06 17: 02: 43.000000000 +0000
Tijdstempels bijwerken
De aanraken commando verandert de wijziging 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:
raak tmp aan
Standaard worden mtime en atime ingesteld op de huidige tijd. U kunt een andere tijd instellen met de -t vlag:
aanraking -t 202103061200 tmp
U kunt ook alleen mtime of atime instellen met de -m en -een vlaggen respectievelijk:
aanraken -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:
vind. -amin 15
vindt bestanden die precies 15 minuten geleden zijn geopend, terwijl:
vind. -mtijd -2
vindt bestanden die in de afgelopen twee dagen zijn gewijzigd.
Linux houdt elk bestand drie keer bij
Het tijdstempel van het bestand waarnaar het meest wordt verwezen, is mtime. Dit is bijvoorbeeld de datum en tijd die in een bestandslijst worden weergegeven. Maar de andere twee tijdstempels kunnen ook nuttig zijn, op voorwaarde dat u begrijpt waarnaar ze verwijzen. Onthoud in het bijzonder altijd dat ctime staat voor verandering tijd, niet creatie tijd.
Commando's zoals touch en stat zijn nuttige leden van de Linux-opdrachtregel-toolbox. Deze commando's zullen uw Linux-workflow verbeteren doordat u snel nieuwe bestanden kunt maken.
Dit eenvoudige spiekbriefje helpt je snel vertrouwd te raken met de Linux-opdrachtregelterminal.
- Linux
- Bestandsbeheer
- Linux Distro
Bobby is een technologieliefhebber die het grootste deel van twee decennia als softwareontwikkelaar heeft gewerkt. Hij is gepassioneerd door gamen, werkt als recensie-editor bij Switch Player Magazine en is ondergedompeld in alle aspecten van online publiceren en webontwikkeling.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Nog een stap…!
Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.