Betaalmethoden Abuse

Hoe de aanmaakdatum van bestanden bekijken in Linux

22.04.2022, 18:05

Op een Linux systeem tonen de bestandseigenschappen van een bestand in bestandsbeheer alleen informatie over de datum van de laatste toegang tot het bestand en de datum van wijziging. Maar de aanmaakdatum wordt daar niet getoond. Soms moet je hiernaar kijken om bijvoorbeeld te weten te komen wanneer het logboek wordt opgenomen. In deze instructie vertellen we je hoe je kunt zien welke gegevens worden opgeslagen in Linux-bestandssystemen en leggen we uit hoe je de aanmaakdatum van een Linux-bestand kunt achterhalen. Er worden twee handige manieren genoemd, elk met zijn eigen bijzonderheden.

Aanmaakdatum bestand

De POSIX standaard specificeert slechts 3 soorten tijdstempels die een bestandssysteem moet opslaan:

  • atime - de tijd van de laatste toegang tot het bestand.
  • mtime - tijd van de laatste wijziging van de inhoud.
  • ctime - tijd van de laatste wijziging van toegangsrechten of eigenaar.

Daarom is het in oude bestandssystemen vaak onmogelijk om informatie over de aanmaakdatum van bestanden te zien. Maar in moderne bestandssystemen (ext4, zfs, XFS enzovoort) wordt dit al opgeslagen.

Gegevens over de aanmaakdatum worden opgeslagen in een speciaal veld:

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

Er zijn twee methoden om deze informatie te bekijken: stat en debugfs. De eerste methode is echter niet geschikt voor gebruikers van elke Linux-distributie. De tweede methode is universeel, maar niet zo eenvoudig te gebruiken. Laten we ze allebei afzonderlijk behandelen.

Stat gebruiken

Het hulpprogramma stat toont gedetailleerde informatie over een bestand. Het toont onder andere de datum waarop het Linux-bestand is gemaakt. Om het in de terminal uit te voeren, hoef je alleen maar het pad naar het bestand op te geven. Laten we bijvoorbeeld eens kijken naar de informatie over de afbeelding pic_1.jpeg die is opgeslagen in de catalogus /home/root-user/Pictures:

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

De benodigde informatie is opgenomen in de kolom Created. En door de -c optie te gebruiken kun je bepaalde opmaakregels instellen voor de uitvoer van de informatie, bijvoorbeeld door alleen de benodigde kolom over te laten:

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

Hoe de aanmaakdatum van bestanden bekijken in Linux

Maar er is een kleine moeilijkheid. Op sommige Linux distributies zal dit veld leeg zijn bij gebruik van het stat hulpprogramma.

Hoe de aanmaakdatum van bestanden bekijken in Linux

De belangrijkste reden hiervoor is dat de uitvoer wordt weergegeven in statx(2). De shell werd toegevoegd aan de glibc bibliotheek in versie 2.28. Dat wil zeggen, ondersteuning voor deze shell verscheen in de GNU coreutils 8.31 set van basissysteemhulpprogramma's. Om de versie te controleren, voer je dit commando uit:

$ stat --version

Hoe de aanmaakdatum van bestanden bekijken in Linux

Bijgevolg zal stat alleen gegevens over het aanmaken van bestanden kunnen uitvoeren als de hierboven beschreven specifieke voorwaarden aanwezig zijn. Bijvoorbeeld, in de Ubuntu 21.10 distributie werkt alles zonder problemen, maar in Ubuntu 20.04 zal het veld leeg zijn.

DebugFS gebruiken

Het hulpprogramma DebugFS heeft geen versiebeperkingen. Het zal altijd werken. Maar de gebruiksprocedure is een beetje ingewikkelder. Om de aanmaakdatum van een bestand via debugfs te bekijken, moet je namelijk het inode-nummer en het bestandssysteem kennen. Om de inode te krijgen, gebruik je het ls commando met de -i optie, waarbij je het pad naar het bestand opgeeft:

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

Hoe de aanmaakdatum van bestanden bekijken in Linux

Om het bestandssysteem te bekijken is het commando df handig:

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

Hoe de aanmaakdatum van bestanden bekijken in Linux

Nu heb je alle benodigde gegevens en kun je verder met het hulpprogramma debugfs. Je moet de -R optie doorgeven, het inode nummer opgeven en dan de naam van het bestandssysteem:

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

Hoe de aanmaakdatum van bestanden bekijken in Linux

Daarna kun je in de terminal het veld vinden waar de aanmaakdatum is opgeslagen. In ons geval is dat crtime.

Hiermee zijn de instructies voltooid.