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

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

Jakie są trzy uniksowe znaczniki czasu?

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

Plik mtime jest najbardziej powszechny i ​​często najbardziej przydatny. 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 operacyjnych Linux. Ale aktualizuje się również, gdy zmienia się zawartość pliku, więc jest zawsze tak samo aktualny jak czas mtime.

instagram viewer

Trzeci znacznik czasu to czas, który przechowuje ostatni raz, gdy ktoś uzyskał dostęp do pliku.

Jak znaczniki czasu mają zastosowanie do katalogów

Katalog Linuksa to w zasadzie lista plików w tym katalogu. Zatem utworzenie pliku w katalogu zaktualizuje czas mtime tego katalogu. Wyświetlanie plików w katalogu przy użyciu rozszerzenia ls na przykład polecenie aktualizuje swój czas dostępu. Podobnie jak w przypadku pliku, zmiana uprawnień lub nazwy katalogu powoduje aktualizację jego ctime.

A co z czasem tworzenia?

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

Wiele aplikacji zapisuje pliki, za każdym razem tworząc je od zera. To spowodowałoby, że używanie czasu tworzenia wprowadzałoby w błąd.

Jak wyświetlić różne sygnatury czasowe

Najprostszym sposobem uzyskania informacji o sygnaturze czasowej jest użycie the ls Komenda. Domyślny format długi pokazuje szczegóły czasu mtime:

$ date
Sobota, 6 marca, 16:57:01 GMT 2021
$ echo "witaj, świecie"> tmp
$ ls -l tmp.txt
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

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

$ date
Sobota, 6 marca, 16:59:33 GMT 2021
$ cat tmp
Witaj świecie
$ 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 ​​czas mtime tego pliku różni się od atime. Na koniec użyj -do flaga, aby wyświetlić ctime:

$ date
Sobota, 6 marca, 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 stat Komenda. To polecenie wyświetla szczegóły niskiego poziomu z i-węzła pliku. Ułatwia to sprawdzenie wszystkich trzech razy na raz. Rozwiązuje również problem nieintuicyjności -u flaga. Oto przykładowe dane wyjściowe dla tego samego pliku:

$ stat tmp2
Plik: `` tmp2 ''
Rozmiar: 13 bloków: 8 bloków we / wy: 4096 zwykłych plików
Urządzenie: 801h / 2049d I-węzeł: 327688 Linki: 1
Dostęp: (0644 / -rw-r - r--) Uid: (1000 / ubuntu) Gid: (1000 / ubuntu)
Dostęp: 2021-03-06 16:59: 45.000000000 +0000
Zmień: 2021-03-06 16: 57: 59.000000000 +0000
Zmiana: 2021-03-06 17: 02: 43,000000000 +0000

Jak zaktualizować sygnatury czasowe

Plik dotknąć polecenie zmienia modyfikacje i czasy dostępu do pliku. Jest to również wygodny sposób tworzenia pustego pliku, co zrobi, jeśli plik jeszcze nie istnieje:

dotknij tmp

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

dotyk-t 202103061200 tmp

Możesz również ustawić tylko mtime lub atime za pomocą -m-za flagi odpowiednio:

dotyk-t 202103061300 -m tmp

Zauważ, że ctime zawsze aktualizuje się, kiedy ustawimy atime lub mtime.

Jak znaleźć pliki na podstawie sygnatur czasowych

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

odnaleźć. -amin 15

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

odnaleźć. -mtime -2

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

Linux trzy razy śledzi każdy plik

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

Polecenia, takie jak dotyk i stat, są przydatnymi elementami zestawu narzędzi wiersza poleceń systemu Linux. Te polecenia usprawnią przepływ pracy w systemie Linux, umożliwiając szybkie tworzenie nowych plików.

E-mail
Arkusz informacji o poleceniach Linuksa

Ta prosta ściągawka pomoże Ci w mgnieniu oka poczuć się komfortowo z terminalem wiersza poleceń Linuksa.

Powiązane tematy
  • Linux
  • Zarządzanie plikami
  • Linux Distro
O autorze
Bobby Jack (33 opublikowane artykuły)

Bobby jest entuzjastą technologii, który przez prawie dwie dekady pracował jako programista. Pasjonuje się grami, pracuje jako redaktor recenzji w Switch Player Magazine i jest pochłonięty wszystkimi aspektami publikacji online i tworzenia stron internetowych.

Więcej od Bobby'ego Jacka

Zapisz się do naszego newslettera

Dołącz do naszego biuletynu, aby otrzymywać wskazówki techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Jeszcze jeden krok…!

Potwierdź swój adres e-mail w wiadomości e-mail, którą właśnie wysłaliśmy.

.