Betalingsmåter Abuse

Slik viser du dato for opprettelse av filer i Linux

22.04.2022, 18:05

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.

Dato for opprettelse av fil

POSIX-standarden spesifiserer bare tre typer tidsstempler som et filsystem må lagre:

  • atime - tidspunktet for siste tilgang til filen.
  • mtime - tidspunktet for siste endring av innholdet.
  • ctime - tidspunkt for siste endring av tilgangsrettigheter eller eier.

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:

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

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.

Bruke Stat

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

Slik viser du dato for opprettelse av filer i Linux

Men det er en liten vanskelighet. På noen Linux-distribusjoner vil dette feltet være tomt når du bruker stat-verktøyet.

Slik viser du dato for opprettelse av filer i Linux

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

Slik viser du dato for opprettelse av filer i Linux

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.

Bruke DebugFS

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

Slik viser du dato for opprettelse av filer i Linux

For å vise filsystemet kan du bruke kommandoen df:

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

Slik viser du dato for opprettelse av filer i Linux

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

Slik viser du dato for opprettelse av filer i Linux

Etter det vil du i terminalen kunne finne feltet der opprettelsesdatoen er lagret. I vårt tilfelle er det crtime.

Dette fullfører instruksjonene.