Odpowiedzi:
Odpowiedź zależy od wersji locateużywasz, ale istnieje spora szansa, że to mlocate, którego updatedbbiegnie szybko, unikając robi pełne skanowanie dysku:
mlocate to implementacja locate / updatedb. „M” oznacza „scalanie”: updatedb ponownie wykorzystuje istniejącą bazę danych, aby uniknąć ponownego odczytu większości systemu plików, co powoduje, że updatedb jest szybsze i nie powoduje tak dużej utraty pamięci podręcznej systemu.
(Baza danych przechowuje sygnaturę czasową każdego katalogu ctimelub mtime, w zależności od tego, co jest nowsze).
Podobnie jak większość implementacji updatedb, mlocatepominie także systemy plików i ścieżki, które jest skonfigurowane do ignorowania. Domyślnie nie ma mlocatetakiego przypadku, ale dystrybucje zazwyczaj zapewniają podstawowe, updatedb.confktóre ignorują sieciowe systemy plików, wirtualne systemy plików itp. (Patrz na przykład plik konfiguracyjny Debiana ; jest to standardowa praktyka w Debianie, więc GNU updatedbjest skonfigurowane podobnie ).
mtimeswojego bezpośredniego rodzica.
mlocateobchodzi ctimei mtimeco oznacza, że dba tylko od tego, czy lista wpisów do katalogów jest wciąż ten sam (bez usuwania lub dodawania plików), co oznacza, że nie dba o rzeczywistych plików siebie. Czy to jest poprawne ?
locatenie jest grep -R. Nie odczytuje zawartości pliku.
Oprócz sprawdzania czasów modyfikacji, mlocateignorowane są także niektóre poddrzewa systemu plików, które zawierają wiele nieciekawych lub potencjalnie zduplikowanych plików, jak określono w /etc/updatedb.conf (i opisano w man updatedb.conf ):
updatedbimplementacje obsługują również skonfigurowane wykluczenia.)