Jaka jest różnica między mlocate i slocate w systemie Linux?

13

Po przejrzeniu /etc/cron.dailykatalogu zauważyłem, że jest tylko plik mlocate.cron w porównaniu z tym, co widziałem na innym materiale, w którym cytują slocate.cron. Czy istnieje różnica między nimi a ich odpowiednimi poleceniami, a jeśli tak, to czym one są?

PeanutsMonkey
źródło

Odpowiedzi:

15

https://fedorahosted.org/mlocate/ wyjaśnia, że ​​mlocate łączy bazy danych przy każdej aktualizacji, co zapewnia przyspieszenie wydajności, ponieważ może pomijać wcześniej zbadane pliki.

Są to konkurencyjne implementacje, ale mlocate jest zaprojektowany tak, aby był kompatybilny wstecz z slocate i powoli go zastępuje.

Stephanie
źródło
Dzięki. Kiedy to mówisz mlocate merges databases at each update, co to dokładnie znaczy?
PeanutsMonkey
4
@Peanuts, patrząc na link podany przez Stephanie, wydaje się, że mlocate(która tworzy bazę danych lokalizacji plików) za każdym razem ponownie uruchamia poprzednią bazę danych, więc wszelkie nowe informacje są łączone ze starymi informacjami, aby zaoszczędzić czas i zapewnić wydajność przyśpieszyć.
pavium
@pavium - Czy to znaczy, że miałbym wiele plików mlocate.cron?
PeanutsMonkey
1
@ orzeszki ziemne, nie, bazy danych są scalane: - nowe dane generowane podczas łączenia mlocate.cronprzebiegów ze starymi danymi z ostatniego uruchomienia. Nie oznacza to, że potrzebujemy wielu mlocate.cronplików.
pavium
1
Dokładniej mówiąc, mlocate porównuje mtime każdego katalogu w bazie danych z tym samym katalogiem w systemie plików. Dla każdego zmienionego katalogu mlocate przeprowadzi go i każde nowe drzewo podkatalogów za nim, w przeciwnym razie po prostu kopiuje zawartość bazy danych dla tego katalogu do nowego DB (plik tymczasowy, który jest przenoszony na końcu). Może to znacznie przyspieszyć proces w dużych systemach plików; Osobiście widziałem, że aktualizacje mlocate zajmują zaledwie kilka godzin w porównaniu do wielu dni w przypadku nowej bazy danych.
Thomas Guyot-Sionnest