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.
De POSIX standaard specificeert slechts 3 soorten tijdstempels die een bestandssysteem moet opslaan:
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:
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.
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
Maar er is een kleine moeilijkheid. Op sommige Linux distributies zal dit veld leeg zijn bij gebruik van het stat hulpprogramma.
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
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.
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
Om het bestandssysteem te bekijken is het commando df
handig:
$ df /home/root-user/scripts/main_script.txt
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
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.