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.
POSIX standard määrab ainult 3 tüüpi ajatemplit, mida failisüsteem peab salvestama:
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:
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.
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
Kuid on üks väike raskus. Mõnes Linuxi distributsioonis on see väli stat utiliidi kasutamisel tühi.
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
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.
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
Failisüsteemi vaatamiseks tuleb appi käsk df
:
$ df /home/root-user/scripts/main_script.txt
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
Pärast seda leiate terminalist välja, kus on salvestatud loomise kuupäev. Meie puhul on see crtime.
Sellega on juhised valmis.