På ett Linux-system visar filegenskaperna för en fil i filhanteraren endast information om datumet för den senaste åtkomsten till filen och datumet för ändring. Men skapandedatumet visas inte där. Ibland behöver du titta på det, till exempel för att ta reda på när loggen spelas in. I den här instruktionen berättar vi hur du kan se vilka data som lagras i Linux filsystem och förklarar hur du tar reda på skapandedatumet för en Linux-fil. Två praktiska sätt kommer att nämnas på en gång, var och en med sina egna särdrag.
POSIX-standarden specificerar endast 3 typer av tidsstämplar som ett filsystem måste lagra:
Det är därför det i gamla filsystem ofta är omöjligt att se information om datumet för filens skapande. Men i moderna filsystem (ext4, zfs, XFS och så vidare) är det redan lagrat.
Data om datumet för skapandet registreras i ett speciellt fält:
Det finns två metoder för att visa den här informationen: stat och debugfs. Den första metoden är dock inte lämplig för användare av alla Linux-distributioner. Den andra metoden är universell, men inte så lätt att använda. Låt oss ta itu med var och en av dem separat.
Verktyget stat visar detaljerad information om en fil. Det visar bland annat datumet då Linux-filen skapades. För att köra det i terminalen behöver du bara ange sökvägen till filen. Låt oss till exempel titta på informationen om bilden pic_1.jpeg
som lagras i katalogen /home/root-user/Pictures
:
$ stat /home/root-user/Pictures/pic_1.jpeg
Den nödvändiga informationen registreras i kolumnen Skapad. Och genom att använda alternativet -c kan du ställa in vissa formateringsregler för informationsutmatningen, till exempel att bara lämna den nödvändiga kolumnen:
$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg
Men det finns en liten svårighet. På vissa Linux-distributioner kommer det här fältet att vara tomt när du använder stat-verktyget.
Huvudorsaken är att utdata visas i statx(2). Skalet lades till i glibc-biblioteket i version 2.28. Det vill säga, stöd för detta skal dök upp i GNU coreutils 8.31-uppsättningen av grundläggande systemverktyg. För att kontrollera versionen, kör detta kommando:
$ stat --version
Följaktligen kommer stat
endast att kunna mata ut data om filskapande om de specifika villkor som beskrivs ovan är uppfyllda. Till exempel fungerar allt utan problem i Ubuntu 21.10-distributionen, men i Ubuntu 20.04 kommer fältet att vara tomt.
Verktyget DebugFS har inga versionsbegränsningar. Det kommer alltid att fungera. Men dess användningsprocedur är lite mer komplicerad. För att kunna visa skapandedatumet för en fil via debugfs måste du nämligen känna till dess inode-nummer och filsystem. För att få reda på inoden använder du kommandot ls
med alternativet -i
, som anger sökvägen till filen:
$ ls -i /home/root-user/scripts/main_script.txt
För att visa filsystemet kommer kommandot df
väl till pass:
$ df /home/root-user/scripts/main_script.txt
Nu har du alla nödvändiga data och kan gå vidare till verktyget debugfs. Du måste skicka alternativet -R
till det, ange inodnumret
och sedan filsystemets namn:
$ sudo debugfs -R 'stat <28>' /dev/sda5
Efter det kommer du att kunna hitta i terminalen det fält där skapelsedatumet lagras. I vårt fall är det crtime.
Detta avslutar instruktionerna.