Przejdź do głównej zawartości

Wyszukiwanie plików względem czasu dostępu, modyfikacji, zmiany. Linux - Bash

Wyszukiwanie plików jak było to już wcześniej przedstawione może odbywać się po określonych kryteriach takich jak nazwa czy rozmiar. Tym razem poszukamy plików dla których kryterium będzie czas. Systemy plików w środowiskach Unix/Linux oferują trzy rodzaje znaczników czasu. Są to czas dostępu (-atime), czas modyfikacji (-mtime) oraz czas zmiany (-ctime). Przedstawione w nawiasach przełączniki są opcjami polecenia "find", które mogą zostać przedstawione w postaci liczb całkowitych oznaczających ilość dni. Przy wartościach dni można używać dodatkowo znaków ( + ) lub ( - ) oznaczających odpowiednio więcej lub mniej niż wartość dni. 


CZAS DOSTĘPU DO PLIKÓW
Jest to ostatni znacznik czasu określający kiedy plik używany był przez danego użytkownika.

Wyszukaj pliki do których uzyskano dostęp w ciągu ostatnich 2 dni. 

# find . -type f -atime -2

Wyszukaj pliki do których dostęp uzyskany był dokładnie 2 dni temu.

# find . -type f -atime 2

Wyszukaj pliki do których dostęp uzyskany był ponad 2 dni temu.

# find . -type f -atime +2

CZAS MODYFIKACJI PLIKÓW
Jest to ostatni znacznik czasu określający kiedy plik został zmodyfikowany

Wyszukaj pliki które były modyfikowane w ciągu ostatnich 2 dni. 

# find . -type f -mtime -2

Wyszukaj pliki które były modyfikowane dokładnie 2 dni temu.

# find . -type f -mtime 2

Wyszukaj pliki które były modyfikowane ponad 2 dni temu.

# find . -type f -mtime +2

CZAS ZMIANY PLIKÓW
Określa kiedy modyfikacje poddane były metadane plików takiej jak uprawnienia lub zmiana właściciela.

Wyszukaj pliki którym zmieniano uprawnienia w ciągu ostatnich 2 dni.

# find . -type f -ctime -2

Wyszukaj pliki którym zmieniano uprawnienia dokładnie 2 dni temu. 

# find . -type f -ctime 2

Wyszukaj pliki którym zmieniano uprawnienia ponad 2 dni temu. 

# find . -type f -ctime +2

WYSZUKIWANIE PLIKÓW WZGLĘDEM CZASU PODANEGO W MINUTACH

Powyższe przykłady oferowały możliwość wyszukiwania plików w zakresie czasu podawanym w dniach. Co jednak jeżeli chodzi o modyfikacje z tego samego dnia 10 min temu ? Dla czasu podawanego w minutach istnieją odpowiedniki powyższych znaczników w postaci: 

  • -amin - czas dostępu 
  • -mmin - czas modyfikacji 
  • -cmin - czas zmiany 
Przykładowo dla wyświetlenia plików do jakich uzyskano dostęp ponad 2 min temu 

# find . -type f -amin +2


PORÓWNANIE CZASÓW DOSTĘPU POMIĘDZY PLIKAMI

Jeżeli zachodzi potrzeba znalezienia plików do których uzyskano dostęp wcześniej niż do innego podanego pliku do dyspozycji mamy ciekawy parametr (-newer). Parametr ten umożliwia odniesienie się do znacznika czasu podanego pliku i porównanie go z pozostałymi plikami. 

Wyszukanie wszystkich plików jakie zostały zmodyfikowane po modyfikacji podanego pliku.

# find /tmp/test/ -type f -newer tmp/test/test.data

Polecenia te przydają się w skryptach mających na celu wykonywanie kopii zapasowych plików.


Komentarze

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości