Betalningsmetoder Abuse

Så här visar du filens skapandedatum i Linux

22.04.2022, 18:05

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.

Filens skapelsedatum

POSIX-standarden specificerar endast 3 typer av tidsstämplar som ett filsystem måste lagra:

  • atime - tiden för den senaste åtkomsten till filen.
  • mtime - tidpunkt för den senaste ändringen av innehållet.
  • ctime - tidpunkt för den senaste ändringen av åtkomsträttigheter eller ägare.

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:

  • Ext4 - crtime
  • ZFS - crtime
  • XFS - crtime
  • Btrfs - otime
  • JFS - di_otime

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.

Använda Stat

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

Så här visar du filens skapandedatum i Linux

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.

Så här visar du filens skapandedatum i Linux

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

Så här visar du filens skapandedatum i Linux

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.

Använda DebugFS

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

Så här visar du filens skapandedatum i Linux

För att visa filsystemet kommer kommandot df väl till pass:

$ df /home/root-user/scripts/main_script.txt

Så här visar du filens skapandedatum i Linux

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

Så här visar du filens skapandedatum i Linux

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.