Fizetési módok Abuse

Hogyan lehet megtekinteni a fájl létrehozásának dátumát Linuxban

22.04.2022, 18:05

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 fájl létrehozásának dátuma

A POSIX szabvány csak 3 típusú időbélyeget határoz meg, amelyet egy fájlrendszernek tárolnia kell:

  • atime - a fájlhoz való utolsó hozzáférés időpontja.
  • mtime - a tartalom utolsó módosításának időpontja.
  • ctime - a hozzáférési jogok vagy a tulajdonos utolsó módosításának időpontja.

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:

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

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 használata

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

Hogyan lehet megtekinteni a fájl létrehozásának dátumát Linuxban

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.

Hogyan lehet megtekinteni a fájl létrehozásának dátumát Linuxban

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

Hogyan lehet megtekinteni a fájl létrehozásának dátumát Linuxban

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 használata

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

Hogyan lehet megtekinteni a fájl létrehozásának dátumát Linuxban

A fájlrendszer megtekintéséhez a df parancs lesz hasznos:

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

Hogyan lehet megtekinteni a fájl létrehozásának dátumát Linuxban

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

Hogyan lehet megtekinteni a fájl létrehozásának dátumát Linuxban

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.