Aby uzyskać lepsze odpowiedzi zarówno pod względem głębi, jak i kompletności, zobacz tę odpowiedź w Unix i Linux .
Ten Brazylijczyk
Odpowiedzi:
38
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.
Zarówno locatei findpoleceń znajdzie plik, ale działają w zupełnie inny sposób.
locate będzie działać w trybie offline:
Dla prostego wyjaśnienia baza danych indeksowania plików w systemie Unix o nazwie slocate wyświetli lokalizację wszystkich plików dostarczanych z systemem Unix. Po uruchomieniu 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”.
W rzeczywistości przejdzie do wszystkich katalogów, aby znaleźć określony plik i sprawdzi każdy plik jeden po drugim. Dlatego wymaga wielu wywołań We / Wy.
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.
Odpowiedzi:
find
wyszukuje w prawdziwym systemie. Jest wolniejszy, ale zawsze aktualny i ma więcej opcji (rozmiar, czas modyfikacji, ...)locate
używa poprzednio zbudowanej bazy danych (polecenieupdatedb
). Jest znacznie szybszy, ale korzysta ze „starszej” bazy danych i wyszukuje tylko nazwy lub ich części.W każdym razie
man find
iman locate
pomoże ci dalej.źródło
updatedb
robić mniej więcej coś takiegofind / -type f | gzip > locate.gz
.Zarówno
locate
ifind
poleceń znajdzie plik, ale działają w zupełnie inny sposób.locate
będzie działać w trybie offline:locate
użyje tej bazy danych do wyszukania określonego pliku. Problemlocate
polega 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ćupdatedb
do zaktualizowania bazy danych Slocate . Wykonywanielocate
ponownie znajdzie się teraz na nowo utworzony plik. Dlatego wielu administratorów systemu Linux używacron
zadania 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. :)
źródło
locate
po prostu przegląda bazę danych i zgłasza lokalizację pliku.find
nie korzysta z bazy danych, przegląda wszystkie katalogi i ich podkatalogi i szuka plików spełniających podane kryterium.źródło
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:
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:
Uruchom to polecenie teraz. Pamiętaj, że baza danych musi być zawsze aktualna, jeśli chcesz znaleźć ostatnio uzyskane lub utworzone pliki.
źródło