På et Linux-system viser filegenskapene til en fil i filbehandleren bare informasjon om datoen for siste tilgang til filen og datoen for endring. Men opprettelsesdatoen vises ikke der. Noen ganger må du se på den, for eksempel for å finne ut når loggen blir registrert. I denne instruksjonen vil vi fortelle deg hvordan du kan se hvilke data som er lagret i Linux-filsystemer, og forklare hvordan du finner ut opprettelsesdatoen for en Linux-fil. To praktiske måter vil bli nevnt med en gang, hver med sine egne særegenheter.
POSIX-standarden spesifiserer bare tre typer tidsstempler som et filsystem må lagre:
Derfor er det i gamle filsystemer ofte umulig å se informasjon om datoen for opprettelsen av filen. Men i moderne filsystemer (ext4, zfs, XFS og så videre) er det allerede lagret.
Data om datoen for opprettelsen er registrert i et spesielt felt:
Det finnes to metoder for å vise denne informasjonen: stat og debugfs. Den første metoden er imidlertid ikke egnet for brukere av alle Linux-distribusjoner. Den andre metoden er universell, men ikke så lett å bruke. La oss håndtere hver av dem separat.
Verktøyet stat viser detaljert informasjon om en fil. Det viser blant annet datoen da Linux-filen ble opprettet. For å kjøre det i terminalen trenger du bare å angi banen til filen. La oss for eksempel se på informasjonen om bildet pic_1.jpeg
som er lagret i katalogen /home/root-user/Pictures
:
$ stat /home/root-user/Pictures/pic_1.jpeg
Den nødvendige informasjonen er registrert i kolonnen Created. Og ved å bruke -c-alternativet kan du angi visse formateringsregler for informasjonsutdataene, for eksempel at bare den nødvendige kolonnen skal stå igjen:
$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg
Men det er en liten vanskelighet. På noen Linux-distribusjoner vil dette feltet være tomt når du bruker stat-verktøyet.
Hovedårsaken er at utdataene vises i statx(2). Skallet ble lagt til i glibc-biblioteket i versjon 2.28. Det vil si at støtte for dette skallet dukket opp i GNU coreutils 8.31-settet med grunnleggende systemverktøy. Du kan sjekke versjonen ved å kjøre denne kommandoen:
$ stat --version
Følgelig vil stat
bare kunne sende ut data om filopprettelse hvis de spesifikke betingelsene beskrevet ovenfor er til stede. I Ubuntu 21.10-distribusjonen fungerer for eksempel alt uten problemer, men i Ubuntu 20.04 vil feltet være tomt.
DebugFS-verktøyet har ingen versjonsbegrensninger. Det vil alltid fungere. Men det er litt mer komplisert å bruke det. For å kunne se opprettelsesdatoen til en fil via debugfs, må du nemlig vite inodenummeret og filsystemet. For å finne inode-nummeret bruker du kommandoen ls
med alternativet -i
, der du angir stien til filen:
$ ls -i /home/root-user/scripts/main_script.txt
For å vise filsystemet kan du bruke kommandoen df
:
$ df /home/root-user/scripts/main_script.txt
Nå har du alle nødvendige data, og du kan gå videre til debugfs-verktøyet. Du må sende -R
til det, angi inodenummeret
og deretter navnet på filsystemet:
$ sudo debugfs -R 'stat <28>' /dev/sda5
Etter det vil du i terminalen kunne finne feltet der opprettelsesdatoen er lagret. I vårt tilfelle er det crtime.
Dette fullfører instruksjonene.