Linux rendszeren a fájlkezelőben a fájl tulajdonságai csak a fájlhoz való utolsó hozzáférés dátumát és a módosítás dátumát mutatják. A létrehozás dátuma azonban nem jelenik meg. Néha meg kell nézni, például azért, hogy megtudjuk, mikor készült a napló rögzítése. Ebben az utasításban elmondjuk, hogyan láthatja, hogy milyen adatokat tárolnak a Linux fájlrendszerekben, és elmagyarázzuk, hogyan lehet megtudni egy Linux fájl létrehozási dátumát. Egyszerre két kényelmes módot említünk meg, mindegyiknek megvannak a maga sajátosságai.
A POSIX szabvány csak 3 típusú időbélyeget határoz meg, amelyet egy fájlrendszernek tárolnia kell:
Ezért van az, hogy a régi fájlrendszerekben gyakran nem látható a fájl létrehozásának időpontjára vonatkozó információ. A modern fájlrendszerekben (ext4, zfs, XFS stb.) azonban már tárolják.
A létrehozás dátumára vonatkozó adatokat egy speciális mezőben rögzítik:
Két módszer van ezen információk megtekintésére: stat és debugfs. Az első módszer azonban nem minden Linux-disztribúció felhasználóinak megfelelő. A második módszer univerzális, de nem olyan könnyen használható. Foglalkozzunk mindegyik módszerrel külön-külön.
A stat segédprogram részletes információkat jelenít meg egy fájlról. Többek között megjeleníti a Linux-fájl létrehozásának dátumát. A terminálban történő futtatásához csak a fájl elérési útvonalát kell megadni. Nézzük meg például a /home/root-user/Pictures
katalógusban tárolt pic_1.jpeg
képre vonatkozó információkat:
$ stat /home/root-user/Pictures/pic_1.jpeg
A szükséges információk a Created oszlopban vannak rögzítve. A -c kapcsolóval pedig bizonyos formázási szabályokat állíthat be a kimeneti információra vonatkozóan, például csak a szükséges oszlopot hagyja meg:
$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg
Van azonban egy kis nehézség. Néhány Linux disztribúción ez a mező üres lesz a stat segédprogram használatakor.
Ennek fő oka az, hogy a kimenet a statx(2) programban jelenik meg. A héj a glibc könyvtárhoz a 2.28-as verzióban került hozzá, vagyis a héj támogatása megjelent a GNU coreutils 8.31 alapvető rendszerszintű segédprogramok készletében. A verzió ellenőrzéséhez futtasd ezt a parancsot:
$ stat --version
Ebből következően a stat
csak akkor lesz képes a fájlkészítési adatok kiadására, ha a fent leírt speciális feltételek fennállnak. Például az Ubuntu 21.10 disztribúcióban minden gond nélkül működik, de az Ubuntu 20.04-ben a mező üres lesz.
A DebugFS segédprogramnak nincsenek verzióbeli korlátozásai. Mindig működni fog. De a használati eljárása egy kicsit bonyolultabb. Ahhoz ugyanis, hogy a debugfs segítségével megnézhessük egy fájl létrehozásának dátumát, ismernünk kell az inode számát és a fájlrendszert. Az inode-szám megismeréséhez használjuk az ls
parancsot a -i
kapcsolóval, megadva a fájl elérési útvonalát:
$ ls -i /home/root-user/scripts/main_script.txt
A fájlrendszer megtekintéséhez a df
parancs lesz hasznos:
$ df /home/root-user/scripts/main_script.txt
Most már minden szükséges adattal rendelkezik, és továbbléphet a debugfs segédprogramra. Át kell adnia neki a -R
opciót, meg kell adnia az inode-számot
, majd az állományrendszer nevét:
$ sudo debugfs -R 'stat <28>' /dev/sda5
Ezután a terminálban meg fogja találni azt a mezőt, ahol a létrehozás dátuma van tárolva. Esetünkben ez a crtime.
Ezzel az utasítások befejeződtek.