Jak uzyskać mlocate do indeksowania tylko niektórych katalogów?

23

Chciałbym użyć mlocate na moim serwerze Ubuntu, ale tylko do indeksowania niektórych katalogów (np. /homeI /data, ale nie wszystko poniżej /). Jednak standardowa konfiguracja mlocate działa w drugą stronę; określasz ścieżki, które chcesz usunąć (za pomocą PRUNE_PATHS).

Czy jest jakiś prosty sposób, aby to osiągnąć, lub podobne narzędzie, które zrobi to, co chcę? (uwaga: powinien utrzymywać indeks podobny do mlocate, więc findna przykład nie do przyjęcia) Dzięki.

Andrew Ferrier
źródło

Odpowiedzi:

16

Możesz użyć opcji -U (--ATATA-root PATH)

updatedb -l 0 -U /home/user/music -o /home/user/databasefile

-o zapisuje do pliku wyjściowego

-l 0 powoduje, że możesz go przeczytać, w przeciwnym razie jest on dostępny tylko dla lokalizacji

Następnie możesz użyć go w następujący sposób:

locate -d /home/user/databasefile Dylan

-d ustawia ścieżkę do bazy danych

Aby użyć mlocate z więcej niż jednym katalogiem głównym, po prostu utwórz dwa pliki bazy danych i użyj opcji lokalizuj z dwiema opcjami ścieżki bazy danych:

locate -d /home/user/dbfile1 -d /home/user/dbfile2 searchstring

Podsumowując i odpowiedz bardziej szczegółowo na pytanie:

updatedb -l 0 -U /home -o /home/user/home_dbfile
updatedb -l 0 -U /data -o /home/user/data_dbfile
locate -d /home/user/home_dbfile -d /home/user/data_dbfile Dylan
Janghou
źródło
Upvoting, ponieważ jest to częściowa odpowiedź. Pozwala jednak na dodanie do białej listy tylko jednej ścieżki. Moje pytanie dotyczyło w szczególności, jak dodać do białej listy więcej niż jedną ścieżkę.
Andrew Ferrier,
1
Poprawiona odpowiedź i dla łatwiejszej obsługi sugeruję utworzenie aliasu
Janghou,
dobra odpowiedź! Nie wiedziałem, że możesz przeszukiwać dwie bazy danych równolegle, dzięki za wyjaśnienie. Oznaczę to jako zaakceptowane, chyba że nadejdzie lepsza odpowiedź!
Andrew Ferrier,
Czy updatedb -l 0 -U /home/user/musicrekurencyjny? Wydaje się, że nie w moim przypadku
Gaia,
22

Edytuj plik /etc/updatedb.conf

Skonfiguruj za PRUNEPATHSpomocą katalogów, których NIE chcesz przeszukiwać

PRUNEPATHS="/tmp /var/spool /media"

PRUNEPATHS: Rozdzielona spacjami lista nazw ścieżek katalogów, które nie powinny być skanowane przez updatedb. Każda nazwa ścieżki musi mieć dokładnie taką formę, w jakiej katalog byłby zgłaszany przez lokalizację. Domyślnie ścieżki nie są pomijane.

Należy pamiętać, że wszystkie powyższe informacje o konfiguracji można również zmienić lub zaktualizować za pomocą opcji wiersza polecenia narzędzia updatedb.

LnxSlck
źródło
Nie, to dokładne przeciwieństwo tego, czego chcę. Spowoduje to indeksowanie wszystkiego oprócz tych katalogów.
Andrew Ferrier,
Możesz ustawić PRUNEPATHS ze wszystkim oprócz swoich katalogów. W ten sposób skanuje tylko twoje katalogi.
LnxSlck
OK, dziękuję za wyjaśnienie. To trochę niepraktyczne, ponieważ gdy dodam podkatalogi obok katalogów, chcę je indeksować, musiałbym pamiętać o dodaniu ich do PRUNEPATHS. Jednak to by działało. Dzieki za sugestie.
Andrew Ferrier,
Tak, wiem, ale nie mogę znaleźć wielu informacji na temat mlocate, aby to zrobić. Nie możesz użyć czegoś takiego jak znaleźć?
LnxSlck
Nie, mam dużo danych, dlatego ważne jest, aby były indeksowane. Wyjaśnili w pytaniu.
Andrew Ferrier,
1

Znalazłem coś innego, co możesz spróbować:

  1. QuickSearch - „Więc mój SearchTool używa innego sposobu: używa polecenia„ ls ”do wyświetlenia listy przeszukiwanego folderu, a następnie wyszukuje dane wyjściowe. W ten sposób szybkość wyszukiwania jest bardzo duża (z wyjątkiem pierwszego uruchomienia „ls”). ”

Nie jestem pewien co do indeksowania.

  1. Użyj GUI narzędzia do śledzenia
  2. Dość kiepskie rozwiązanie sudo znaleźć „umieść tutaj swoje katalogi wyszukiwania”> files.list grep „nazwa pliku” files.list
LnxSlck
źródło
Staraj się nie dodawać wielu odpowiedzi. W razie potrzeby edytuj istniejącą odpowiedź i dołącz więcej informacji. Dzięki.
jokerdino
Tak, zrobię to
LnxSlck,