Betalingsmetoder Abuse

Sådan ser du filens oprettelsesdato i Linux

22.04.2022, 18:05

På et Linux-system viser filegenskaberne for en fil i filhåndteringen kun oplysninger om datoen for den sidste adgang til filen og datoen for ændring. Men oprettelsesdatoen vises ikke. Nogle gange er man nødt til at se på den, f.eks. for at finde ud af, hvornår loggen er blevet optaget. I denne vejledning fortæller vi, hvordan man kan se, hvilke data der er gemt i Linux-filsystemer, og hvordan man finder frem til oprettelsesdatoen for en Linux-fil. Vi nævner straks to praktiske måder med hver deres særpræg.

Dato for oprettelse af fil

POSIX-standarden specificerer kun 3 typer tidsstempler, som et filsystem skal gemme:

  • atime - tidspunktet for den sidste adgang til filen.
  • mtime - tidspunktet for den sidste ændring af indholdet.
  • ctime - tidspunkt for sidste ændring af adgangsrettigheder eller ejer.

Derfor er det i gamle filsystemer ofte umuligt at se oplysninger om datoen for filens oprettelse. Men i moderne filsystemer (ext4, zfs, XFS og så videre) er det allerede gemt.

Data om oprettelsesdatoen registreres i et særligt felt:

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

Der er to metoder til at se disse oplysninger: stat og debugfs. Den første metode er dog ikke egnet til brugere af alle Linux-distributioner. Den anden metode er universel, men ikke så nem at bruge. Lad os se på dem hver for sig.

Brug af Stat

Værktøjet stat viser detaljerede oplysninger om en fil. Det viser bl.a. datoen for, hvornår Linux-filen blev oprettet. For at køre det i terminalen skal du bare angive stien til filen. Lad os f.eks. se på oplysningerne om billedet pic_1.jpeg, der er gemt i kataloget /home/root-user/Pictures:

$ stat /home/root-user/Pictures/pic_1.jpeg

De nødvendige oplysninger er registreret i kolonnen Created. Og ved at bruge indstillingen -c kan du indstille visse formateringsregler for informationsoutputtet, f.eks. ved kun at efterlade den nødvendige kolonne:

$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg

Sådan ser du filens oprettelsesdato i Linux

Men der er et lille problem. På nogle Linux-distributioner vil dette felt være tomt, når man bruger stat-værktøjet.

Sådan ser du filens oprettelsesdato i Linux

Hovedårsagen er, at outputtet vises i statx(2). Shellen blev tilføjet til glibc-biblioteket i version 2.28. Det vil sige, at understøttelse af denne shell dukkede op i GNU coreutils 8.31-sættet af grundlæggende systemværktøjer. For at tjekke versionen skal du køre denne kommando:

$ stat --version

Sådan ser du filens oprettelsesdato i Linux

Derfor vil stat kun kunne udlæse data om filoprettelse, hvis de specifikke betingelser, der er beskrevet ovenfor, er til stede. I Ubuntu 21.10-distributionen fungerer alt f.eks. uden problemer, men i Ubuntu 20.04 vil feltet være tomt.

Brug af DebugFS

DebugFS-værktøjet har ingen versionsbegrænsninger. Det vil altid virke. Men det er lidt mere kompliceret at bruge det. For at kunne se oprettelsesdatoen for en fil via debugfs skal man nemlig kende dens inode-nummer og filsystem. For at få inoden skal du bruge kommandoen ls med indstillingen -i og angive stien til filen:

$ ls -i /home/root-user/scripts/main_script.txt

Sådan ser du filens oprettelsesdato i Linux

For at se filsystemet er kommandoen df praktisk:

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

Sådan ser du filens oprettelsesdato i Linux

Nu har du alle de nødvendige data, og du kan gå videre til debugfs-værktøjet. Du skal give det indstillingen -R, angive inode-nummeret og derefter navnet på filsystemet:

$ sudo debugfs -R 'stat <28>' /dev/sda5

Sådan ser du filens oprettelsesdato i Linux

Derefter vil du i terminalen kunne finde det felt, hvor oprettelsesdatoen er gemt. I vores tilfælde er det crtime.

Dette afslutter instruktionerne.