Zrozumienie znaczników czasu plików systemu Linux: mtime, ctime i atime

Zrozumienie znaczników czasu plików systemu Linux: mtime, ctime i atime

System operacyjny Linux śledzi trzy znaczniki czasu dla każdego pliku w systemie. Te sygnatury czasowe umożliwiają odkrycie, kiedy plik był ostatnio aktualizowany. Ale co one wszystkie oznaczają? A jak poznać te czasy dla pliku? Czy jest różnica, jeśli chodzi o katalogi?





Zrozumienie time, ctime i mtime może odpowiedzieć na wszystkie te pytania. Są to trzy znaczniki czasu, które śledzą systemy plików Unix. Jeśli kiedykolwiek będziesz potrzebował dowiedzieć się więcej o tym, co się zmieniło i kiedy, czytaj dalej.





Jakie są trzy sygnatury czasowe Unix?

Z każdym plikiem są powiązane trzy sygnatury czasowe. Linux przechowuje je w Format czasu uniksowego który mierzy sekundy od epoki. Trzy znaczniki czasu są powszechnie określane jako atime, ctime i mtime.





ten mtime jest najczęstszym i często najbardziej użytecznym. To znaczy zmodyfikowany czas . Jest to czas, w którym zawartość pliku została ostatnio zapisana na dysku.

Nieco inny jest ctime co oznacza zmienić czas . Ta sygnatura czasowa śledzi zmiany metadanych, takie jak własność i uprawnienia. Obejmuje zmianę nazwy pliku - przynajmniej w typowych nowoczesnych systemach Linux. Ale aktualizuje się również, gdy zmienia się zawartość pliku, więc jest zawsze tak samo aktualny jak mtime.



Trzeci znacznik czasu to czas , który przechowuje ostatni dostęp do pliku.

jak zablokować niechciane połączenia na stacjonarne za darmo

Jak znaczniki czasu odnoszą się do katalogów

Katalog Linuksa jest zasadniczo listą plików w tym katalogu. Tak więc utworzenie pliku w katalogu zaktualizuje mtime tego katalogu. Wyświetlanie listy plików w katalogu, używając ls polecenie, na przykład, aktualizuje swój czas dostępu. Podobnie jak w przypadku pliku, zmiana uprawnień lub nazwy katalogu aktualizuje jego czas ctime.





A co z czasem tworzenia?

Może cię zaskoczyć, gdy dowiesz się, że Linux po prostu nie śledzi czasu tworzenia. Możesz początkowo założyć, że ctime oznacza czas stworzenia. Równie dobrze możesz myśleć o tym jako o bardzo przydatnej rzeczy, aby móc się dowiedzieć.

Wiele aplikacji zapisuje pliki, tworząc je za każdym razem od podstaw. To spowodowałoby, że użycie czasu tworzenia byłoby mylące.





Jak wyświetlić różne sygnatury czasowe

Najprostszym sposobem uzyskania informacji o znaczniku czasu jest użycie ten ls Komenda . Domyślny długi format pokazuje szczegóły dla 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

Zamiast tego możesz wyświetlić czas, używając -u flaga:

$ 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

Ostatnia linia potwierdza, że ​​mtime tego pliku jest inny niż atime. Na koniec użyj -C flaga, aby wyświetlić czas c:

$ 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

Tym razem potwierdzamy, że wszystkie trzy czasy są różne i poprawne: zmodyfikowaliśmy, uzyskaliśmy dostęp, a następnie zmieniliśmy plik, w tej kolejności.

Alternatywą dla ls jest stan Komenda. To polecenie wyświetla szczegóły niskiego poziomu z i-węzła pliku. Ułatwia sprawdzenie wszystkich trzech razy naraz. Omija również problem nieintuicji -u flaga. Oto przykładowe wyjście dla tego samego pliku:

$ 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

Jak zaktualizować znaczniki czasu

ten dotykać polecenie zmienia czasy modyfikacji i dostępu do pliku. Jest to również wygodny sposób na utworzenie pustego pliku, który zrobi, jeśli plik jeszcze nie istnieje:

Głośnik iPhone'a nie działa podczas połączeń
touch tmp

Domyślnie ustawi mtime i atime na aktualny czas. Możesz ustawić inny czas za pomocą -T flaga:

touch -t 202103061200 tmp

Możesz także ustawić tylko mtime lub atime za pomocą -m oraz -do flagi odpowiednio:

touch -t 202103061300 -m tmp

Zwróć uwagę, że ctime zawsze aktualizuje się, gdy ustawimy czas lub mtime.

Jak znaleźć pliki na podstawie znaczników czasu

ten odnaleźć polecenie to kolejne narzędzie, które działa na znacznikach czasu. Może filtrować pliki na podstawie czasu, ctime lub mtime. Na przykład:

find . -amin 15

znajdzie pliki, do których uzyskano dostęp dokładnie 15 minut temu, podczas gdy:

find . -mtime -2

znajdzie pliki zmodyfikowane w ciągu ostatnich dwóch dni.

Linux śledzi każdy plik trzy razy

Najczęściej przywoływanym znacznikiem czasu pliku jest mtime. Na przykład jest to data i godzina pokazywana na liście plików. Ale pozostałe dwa znaczniki czasu również mogą być przydatne, pod warunkiem, że rozumiesz, do czego się odnoszą. W szczególności zawsze pamiętaj, że ctime oznacza reszta czas, nie kreacja czas.

Polecenia takie jak touch i stat są użytecznymi elementami przybornika wiersza poleceń systemu Linux. Te polecenia usprawnią przepływ pracy w systemie Linux, umożliwiając szybkie tworzenie nowych plików.

Udział Udział Ćwierkać E-mail Ściągawka dotycząca poleceń Linuksa

Ta prosta ściągawka pomoże Ci szybko zaznajomić się z terminalem wiersza poleceń systemu Linux.

jak sprawdzić, czy telefon z Androidem został zhakowany
Czytaj dalej Powiązane tematy
  • Linux
  • Zarządzanie plikami
  • Dystrybucja Linuksa
O autorze Bobby Jack(58 opublikowanych artykułów)

Bobby jest entuzjastą technologii, który przez prawie dwie dekady pracował jako programista. Pasjonuje się grami, pracuje jako redaktor recenzji w magazynie Switch Player i jest zanurzony we wszystkich aspektach publikowania online i tworzenia stron internetowych.

Więcej od Bobby'ego Jacka

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować