Odpowiedzi:
findwyszukuje w prawdziwym systemie. Jest wolniejszy, ale zawsze aktualny i ma więcej opcji (rozmiar, czas modyfikacji, ...)
locateużywa poprzednio zbudowanej bazy danych (polecenie updatedb). Jest znacznie szybszy, ale korzysta ze „starszej” bazy danych i wyszukuje tylko nazwy lub ich części.
W każdym razie man findi man locatepomoże ci dalej.
updatedbrobić mniej więcej coś takiego find / -type f | gzip > locate.gz.
Zarówno locatei findpoleceń znajdzie plik, ale działają w zupełnie inny sposób.
locate będzie działać w trybie offline:
locateużyje tej bazy danych do wyszukania określonego pliku. Problem locatepolega na tym, że jeśli właśnie utworzyłeś plik, który chcesz teraz wyszukać, lokalizacja nie będzie działać, ponieważ baza danych slocate nie jest aktualna. Aby rozwiązać ten problem, możesz użyć updatedbdo zaktualizowania bazy danych Slocate . Wykonywanie locateponownie znajdzie się teraz na nowo utworzony plik. Dlatego wielu administratorów systemu Linux używa cronzadania do regularnej aktualizacji bazy danych slocate .find będzie działać w trybie online / „w czasie rzeczywistym”.
Tak więc w oparciu o naturę jasne jest, że lokalizowanie jest szybsze niż wyszukiwanie, ale wyszukiwanie odbywa się w czasie rzeczywistym.
Mam nadzieję, że pomoże to wyjaśnić ten pomysł. Wszystkiego najlepszego. :)
Alternatywą dla użycia find jest polecenie locate. To polecenie jest często szybsze i może z łatwością przeszukiwać cały system plików. Możesz zainstalować polecenie za pomocą apt-get:
sudo apt-get update
sudo apt-get install mlocate
Lokalizacja jest szybsza niż znajdowanie, ponieważ polega ona na bazie danych plików w systemie plików. Baza danych jest zwykle aktualizowana raz dziennie za pomocą skryptu cron, ale można ją zaktualizować ręcznie, wpisując:
sudo updatedb
Uruchom to polecenie teraz. Pamiętaj, że baza danych musi być zawsze aktualna, jeśli chcesz znaleźć ostatnio uzyskane lub utworzone pliki.