Înțelegerea marcajelor de timp ale fișierelor Linux: mtime, ctime și atime

Înțelegerea marcajelor de timp ale fișierelor Linux: mtime, ctime și atime

Sistemul de operare Linux ține evidența a trei mărci de timp pentru fiecare fișier din sistemul dvs. Aceste marcaje de timp vă permit să descoperiți când a fost actualizat ultima dată un fișier. Dar ce înseamnă toate acestea? Și cum aflați aceste vremuri pentru un fișier? Există vreo diferență când vine vorba de directoare?





Înțelegerea atime, ctime și mtime poate răspunde la toate aceste întrebări. Acestea sunt cele trei timestampuri pe care le urmăresc sistemele de fișiere Unix. Dacă vreodată trebuie să aflați detalii despre ce s-a schimbat și când, citiți mai departe.





Care sunt cele trei mărci de timp Unix?

Fiecare fișier are trei marcaje de timp asociate. Linux le stochează în Format de timp Unix care măsoară secunde de la epocă. Cele trei mărci de timp sunt denumite în mod obișnuit atime, ctime și mtime.





The mtime este cel mai comun și adesea cel mai util. Inseamna timp modificat . Este momentul în care conținutul fișierului a fost scris ultima dată pe disc.

Un pic diferit este ctime care înseamnă schimbă timpul . Această marcă de timp urmărește modificările metadatelor, cum ar fi proprietatea și permisiunile. Include redenumirea unui fișier - cel puțin pe sistemele de operare Linux tipice moderne. Dar se actualizează și atunci când conținutul fișierului se modifică, deci este întotdeauna la fel de actualizat ca mtime-ul.



A treia marcă de timp este o vreme , care stochează ultima dată când cineva a accesat fișierul.

când este un CPU prea fierbinte

Cum se aplică marcajele temporare în directoare

Un director Linux este, în esență, o listă a fișierelor din acel director. Așadar, crearea unui fișier într-un director va actualiza mtime-ul acelui director. Listarea fișierelor în director, folosind eu sunt comanda, de exemplu, își actualizează timpul de acces. Și, la fel ca în cazul unui fișier, modificarea permisiunilor sau a numelui unui director își actualizează timpul.





Dar despre timpul de creație?

S-ar putea să vă surprindă să aflați că Linux pur și simplu nu ține evidența timpului de creație. Ați putea presupune inițial că ctime înseamnă timpul de creație. La fel, s-ar putea să vă gândiți la asta ca la un lucru foarte util pentru a putea afla.

Multe aplicații salvează fișiere creându-le de la zero de fiecare dată. Acest lucru ar face ca utilizarea unui timp de creație să inducă în eroare.





Cum să vizualizați diferitele marcaje de timp

Cea mai simplă modalitate de a obține informații de marcă de timp este cu the eu sunt comanda . Formatul lung implicit afișează detalii pentru mtime:

$ date
Sat Mar 6 16:57:01 GMT 2021
$ echo 'hello, world' > tmp
$ ls -l tmp.txt
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

În schimb, puteți afișa atime utilizând -u steag:

$ date
Sat Mar 6 16:59:33 GMT 2021
$ cat tmp
hello, world
$ ls -lu tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Ultima linie confirmă faptul că durata acestui fișier este diferită de cea atime. În cele din urmă, utilizați -c semnalizați pentru a vizualiza ctime:

$ date
Sat Mar 6 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2

De această dată, confirmăm că toate cele trei ori sunt distincte și corecte: am modificat, apoi am accesat, apoi am schimbat fișierul, în această ordine.

O alternativă la ls este stat comanda. Această comandă afișează detalii de nivel scăzut din inodul fișierului. Este mai ușor să verificați de trei ori simultan. De asemenea, rezolvă problema neintuitivului -u steag. Iată un exemplu de ieșire pentru același fișier:

$ stat tmp2
File: `tmp2'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-03-06 16:59:45.000000000 +0000
Modify: 2021-03-06 16:57:59.000000000 +0000
Change: 2021-03-06 17:02:43.000000000 +0000

Cum se actualizează marcajele de timp

The atingere comanda modifică timpul de modificare și de acces al unui fișier. Este, de asemenea, un mod convenabil de a crea un fișier gol, pe care îl va face dacă fișierul nu există deja:

la ce se folosește pasta termică
touch tmp

În mod implicit, va seta mtime și atime la ora curentă. Puteți seta o oră diferită cu -t steag:

touch -t 202103061200 tmp

De asemenea, puteți seta doar mtime sau atime cu -m și -la steaguri, respectiv:

touch -t 202103061300 -m tmp

Rețineți că ctime-ul se actualizează întotdeauna când setăm atime sau mtime.

Cum să găsiți fișiere pe baza marcajelor de timp

The găsi comanda este un alt instrument care acționează asupra marcajelor de timp. Poate filtra fișiere pe baza atime, ctime sau mtime. De exemplu:

find . -amin 15

va găsi fișiere accesate exact acum 15 minute, în timp ce:

find . -mtime -2

va găsi fișiere modificate în ultimele două zile.

Linux ține evidența fișierelor de trei ori

Cea mai frecventă referință temporală a fișierului este mtime. Aceasta este data și ora pe care o afișează o listă de fișiere, de exemplu. Dar și celelalte două timestampuri pot fi utile, cu condiția să înțelegeți la ce se referă. În special, amintiți-vă întotdeauna că ctime reprezintă Schimbare timpul, nu creare timp.

Comenzile precum touch și stat sunt membri utili ai setului de instrumente pentru linia de comandă Linux. Aceste comenzi vă vor îmbunătăți fluxul de lucru Linux, permițându-vă să creați rapid fișiere noi.

Acțiune Acțiune Tweet E-mail Foaia de cheat de referință a comenzilor Linux

Această foaie simplă de cheat vă va ajuta să vă simțiți confortabil cu terminalul liniei de comandă Linux în cel mai scurt timp.

mouse-ul nu funcționează pe laptop
Citiți în continuare Subiecte asemănătoare
  • Linux
  • Gestionarea fișierelor
  • Linux Distro
Despre autor Bobby Jack(58 articole publicate)

Bobby este un pasionat de tehnologie care a lucrat ca dezvoltator de software timp de aproape două decenii. Este pasionat de jocuri, lucrează ca editor de recenzii la Switch Player Magazine și este cufundat în toate aspectele publicării online și dezvoltării web.

Mai multe de la Bobby Jack

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona