Często zdarzają się sytuacje, w których trzeba wyświetlić ostatnio utworzone, nowe pliki w systemie operacyjnym. Jest to często potrzebne administratorowi systemu, który utworzył plik konfiguracyjny, a następnie po prostu zapomniał, gdzie został zapisany. Potrzeba wyszukania nowych plików może również wynikać z konieczności sprawdzenia, czy plik został ostatnio zmieniony. Ogólnie rzecz biorąc, sytuacje mogą być bardzo różne. Zaletą systemu operacyjnego Linux jest to, że tradycyjnie zapewnia on kilka sposobów na rozwiązanie konkretnego problemu.
Najprostszym i najbardziej powszechnym sposobem na znalezienie nowych plików w systemie Linux jest narzędzie Find
. W zależności od aktualnych potrzeb przekazywane są do niego różne parametry, na przykład można wyszukiwać pliki tylko w określonym zakresie miesięcy lub dni kalendarzowych, szczegóły jak to zrobić znajdują się poniżej.
Pliki są wyświetlane w katalogach i podkatalogach oraz sortowane:
$ find /etc -type f -printf '%TY-%Tm-%Td %TT %p ' | sort –r
Ale jak widać, wynik jest dość imponujący, nie jest możliwe rozpoznanie nowych plików z całej listy. Dlatego musimy użyć innego polecenia:
$ find /etc -type f -mmin -120
W ten sposób określamy, że system ma być przeszukiwany tylko pod kątem plików, które zostały utworzone w ciągu ostatniej godziny.
Jeśli konieczne jest uwzględnienie ostatnich dwóch dni, należy wprowadzić następujące polecenie:
$ find /etc -type f -mtime -2
Czasami nie ma potrzeby zagłębiania się w podkatalogi trzeciego poziomu, więc aby wykluczyć tę czynność, musimy użyć specjalnej opcji maxdepth
:
$ find /etc -maxdepth 3 -mtime -2 -type f
Możemy zobaczyć wszystkie nowe pliki utworzone w systemie Linux w ciągu ostatnich siedmiu dni, ale z zastrzeżeniem, że ostatnie trzy dni nie powinny być brane pod uwagę:
$ find /etc -type f -mtime -7 ! -mtime -3
Polecenia te wyświetlają ścieżkę do pliku, ale aby wyświetlić atrybuty, musimy użyć specjalnej opcji --exec
. Następnie wyświetlimy atrybuty każdego nowego pliku za pomocą narzędzia ls
:
$ find /etc -type f -mmin -120 -exec ls -al {} ;
Jeśli uznasz to polecenie za zbyt mylące i skomplikowane, możesz użyć innego:
$ find /etc -type f -mmin -120 | xargs ls -l
Tutaj używamy już innego narzędzia, xargs
. Narzędzie find pozwala również znaleźć pliki nowsze niż dany plik. Na przykład, utwórzmy plik referencyjny:
$ touch /tmp/test
Teraz znajdź wszystkie nowsze pliki w katalogu głównym, które zostały utworzone po nim:
$ find / -type f -newer /tmp/test
Przejdźmy do innej metody.
Ta metoda wyszukiwania nowych plików jest znacznie prostsza niż poprzednia, więc można ją polecić początkującym użytkownikom Linuksa. Polecenie ls
może również sortować pliki w katalogu według daty utworzenia. Aby to zrobić, musimy tylko wykonać ls:
$ ls -ltr
Plików może być zbyt wiele, więc rozsądnie jest uruchomić również to polecenie:
$ ls -ltr | tail
Nie są to wszystkie sposoby znajdowania nowych plików, ale wystarczą, aby szybko i sprawnie wykonać zadanie. Jak widać, podstawowe polecenia wyszukiwania find i ls mogą być jeszcze bardziej elastyczne w połączeniu z sort, tail
i grep
.