Makseviisid Abuse

Kuidas vaadata faili loomise kuupäeva Linuxis

22.04.2022, 18:05

Linuxi süsteemis näitavad failihalduri faili omadused ainult teavet faili viimase juurdepääsu kuupäeva ja muutmise kuupäeva kohta. Kuid loomise kuupäeva seal ei näidata. Mõnikord on vaja seda vaadata näiteks selleks, et teada saada, millal logi salvestatakse. Selles juhendis räägime teile, kuidas näha, milliseid andmeid Linuxi failisüsteemides hoitakse, ja selgitame, kuidas leida Linuxi faili loomise kuupäev. Kohe mainitakse kahte mugavat viisi, millel mõlemal on oma eripära.

Faili loomise kuupäev

POSIX standard määrab ainult 3 tüüpi ajatemplit, mida failisüsteem peab salvestama:

  • atime - faili viimase juurdepääsu aeg.
  • mtime - sisu viimase muutmise aeg.
  • ctime - juurdepääsuõiguste või omaniku viimase muutmise aeg.

Seetõttu on vanades failisüsteemides sageli võimatu näha teavet faili loomise kuupäeva kohta. Kuid kaasaegsetes failisüsteemides (ext4, zfs, XFS jne) on see juba salvestatud.

Andmed loomise kuupäeva kohta on salvestatud spetsiaalsesse väljasse:

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

Selle teabe vaatamiseks on kaks meetodit: stat ja debugfs. Esimene meetod ei sobi siiski iga Linuxi distributsiooni kasutajatele. Teine meetod on universaalne, kuid mitte nii lihtne kasutada. Käsitleme mõlemat neist eraldi.

Stat-i kasutamine

Utiliit stat kuvab üksikasjalikku teavet faili kohta. Muuhulgas näitab ta Linuxi faili loomise kuupäeva. Selle käivitamiseks terminalis tuleb lihtsalt määrata faili teekond. Vaatame näiteks teavet pildi pic_1.jpeg kohta, mis on salvestatud kataloogis /home/root-user/Pictures:

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

Vajalik teave on salvestatud veergu Created. Ja kasutades valikut -c saate määrata teatud vormindusreeglid teabe väljundi jaoks, näiteks jätta ainult vajaliku veeru:

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

Kuidas vaadata faili loomise kuupäeva Linuxis

Kuid on üks väike raskus. Mõnes Linuxi distributsioonis on see väli stat utiliidi kasutamisel tühi.

Kuidas vaadata faili loomise kuupäeva Linuxis

Peamine põhjus on see, et väljund kuvatakse statx(2). Koorik lisati glibc raamatukogusse versioonis 2.28. See tähendab, et selle koore tugi ilmus süsteemi põhiliste utiliitide komplektis GNU coreutils 8.31. Versiooni kontrollimiseks käivitage see käsk:

$ stat --version

Kuidas vaadata faili loomise kuupäeva Linuxis

Järelikult suudab stat väljastada faili loomise andmeid ainult siis, kui eespool kirjeldatud eritingimused on täidetud. Näiteks Ubuntu 21.10 distributsioonis töötab kõik probleemideta, kuid Ubuntu 20.04 versioonis on väli tühi.

DebugFS-i kasutamine

Utiliidil DebugFS ei ole versiooni piiranguid. See töötab alati. Kuid selle kasutamise protseduur on veidi keerulisem. Seda seetõttu, et faili loomise kuupäeva vaatamiseks debugfs'i kaudu on vaja teada selle inode'i numbrit ja failisüsteemi. Inode'i saamiseks kasutage käsku ls koos lisaga -i, määrates faili tee:

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

Kuidas vaadata faili loomise kuupäeva Linuxis

Failisüsteemi vaatamiseks tuleb appi käsk df:

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

Kuidas vaadata faili loomise kuupäeva Linuxis

Nüüd on teil kõik vajalikud andmed olemas ja te võite liikuda edasi utiliidi debugfs juurde. Sellele tuleb edastada valik -R, määrata inode'i number ja seejärel failisüsteemi nimi:

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

Kuidas vaadata faili loomise kuupäeva Linuxis

Pärast seda leiate terminalist välja, kus on salvestatud loomise kuupäev. Meie puhul on see crtime.

Sellega on juhised valmis.