Wyszukiwanie w witrynie

10 przydatnych praktycznych przykładów polecenia „locate” dla początkujących użytkowników Linuksa


Jednym z najbardziej nieprzyjemnych doświadczeń, z jakimi zwykle spotyka się większość nowych użytkowników platformy Linux, jest niemożność znalezienia najprostszego, a jednocześnie skuteczniejszego sposobu wyszukiwania plików w systemie.

Linux, jak prawie każdy inny system operacyjny, wykorzystuje kilka mechanizmów, aby odpowiadać na zapytania użytkowników. Dwa najpopularniejsze narzędzia do wyszukiwania plików dostępne dla użytkowników to find i locate.

Należy zauważyć, że oba procesy wyszukiwania działają wyjątkowo dobrze, niemniej jednak główna część tego artykułu będzie poświęcona narzędziu lokalizacja, które jest wygodniejsze z nich, ponieważ wykorzystuje bardziej wydajne sposoby szybkiego przetwarzania zapytań wprowadzanych przez użytkowników.

Narzędzie locate działa lepiej i szybciej niż jego odpowiednik find, ponieważ zamiast przeszukiwać system plików po zainicjowaniu wyszukiwania plików – coś, co find robi – funkcja „locate” przeszuka bazę danych. Ta baza danych zawiera fragmenty plików oraz odpowiadające im ścieżki w systemie.

Oto dziesięć prostych poleceń lokalizacji, które pomogą Ci zwiększyć produktywność na komputerze z systemem Linux.

1. Korzystanie z polecenia lokalizacji

Uruchomienie polecenia lokalizowania w celu wyszukania pliku jest całkiem łatwe i proste. Wszystko, co musisz zrobić, to wpisać:


$ locate LAMP-Setup.odt

/home/tecmint/LAMP-Setup.odt
/home/tecmint/TecMint.com/LAMP-Setup.odt

2. Ogranicz zapytania do określonej liczby

Możesz ograniczyć wyniki wyszukiwania do wymaganej liczby, aby uniknąć powtarzania wyników wyszukiwania, używając polecenia -n.

Na przykład, jeśli chcesz uzyskać tylko 20 wyników z zapytań, możesz wpisać następujące polecenie:


$ locate "*.html" -n 20

/home/tecmint/.config/google-chrome/Default/Extensions/aapocclcgogkmnckokdopfmhonfmgoek/0.9_0/main.html
/home/tecmint/.config/google-chrome/Default/Extensions/aohghmighlieiainnegkcijnfilokake/0.9_0/main.html
/home/tecmint/.config/google-chrome/Default/Extensions/felcaaldnbdncclmgdcncolpebgiejap/1.1_0/main.html
/home/tecmint/.config/google-chrome/Default/Extensions/kbfnbcaeplbcioakkpcpgfkobkghlhen/14.752.848_0/forge.html
/home/tecmint/.config/google-chrome/Default/Extensions/kbfnbcaeplbcioakkpcpgfkobkghlhen/14.752.848_0/src/popup.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/additional-feature.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/background.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/edit.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/help.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/options.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/popup.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/purchase.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/upload.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/oauth2/oauth2.html
/home/tecmint/.config/google-chrome/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.2_0/html/craw_window.html
/home/tecmint/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/cast_route_details.html
/home/tecmint/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/feedback.html
/home/tecmint/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/cast_setup/devices.html
/home/tecmint/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/cast_setup/index.html
/home/tecmint/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/cast_setup/offers.html

Wyniki pokażą pierwsze 20 plików kończących się na .html.

3. Wyświetl liczbę pasujących wpisów

Jeśli chcesz wyświetlić liczbę wszystkich pasujących wpisów w pliku „tecmint”, użyj polecenia locate -c.


$ locate -c [tecmint]*

1550

4. Ignoruj wyniki wyszukiwania uwzględniające wielkość liter

Domyślnie funkcja locate jest skonfigurowana do przetwarzania zapytań z uwzględnieniem wielkości liter, co oznacza, że TEXT.TXT wskaże inny wynik niż text.txt .

Aby polecenie locate ignorowało wielkość liter i wyświetlało wyniki zarówno dla zapytań wielkich, jak i małych, wprowadź polecenia z opcją -i.


$ locate -i *text.txt*

/home/tecmint/TEXT.txt
/home/tecmint/text.txt

5. Odśwież bazę danych mlocate

Ponieważ polecenie locate opiera się na bazie danych o nazwie mlocate. Wspomniana baza danych musi być regularnie aktualizowana, aby narzędzie poleceń mogło działać
wydajnie.

Aby zaktualizować bazę danych mlocate, użyj narzędzia o nazwie updatedb. Należy zauważyć, że do poprawnego działania tej operacji potrzebne będą uprawnienia administratora, czy należy to wykonać z uprawnieniami roota czy sudo.


sudo updatedb

6. Wyświetlaj tylko pliki obecne w Twoim systemie

Kiedy masz zaktualizowaną bazę danych mlocate**, polecenie locate nadal generuje wyniki plików, których fizyczne kopie zostały usunięte z twojego systemu.

Aby uniknąć pojawienia się plików, których w momencie wpisywania polecenia nie było na Twoim komputerze, będziesz musiał użyć polecenia locate-e. Proces przeszukuje Twój system, aby zweryfikować istnienie pliku, którego szukasz, nawet jeśli nadal znajduje się on w Twoim mlocate.db.


$ locate -i -e *text.txt*

/home/tecmint/text.txt

7. Oddziel wpisy wyjściowe bez nowej linii

Domyślnym separatorem polecenia locate jest znak nowej linii (\\n). Jeśli jednak wolisz użyć innego separatora, np. ASCII NUL, możesz to zrobić za pomocą opcji wiersza poleceń -0.


$ locate -i -0 *text.txt*

/home/tecmint/TEXT.txt/home/tecmint/text.txt

8. Przejrzyj bazę danych lokalizacji

Jeśli masz wątpliwości co do aktualnego stanu swojego pliku mlocate.db, możesz łatwo wyświetlić statystyki lokalizacji bazy danych za pomocą polecenia -S.


$ locate -S

Database /var/lib/mlocate/mlocate.db:
	32,246 directories
	4,18,850 files
	2,92,36,692 bytes in file names
	1,13,64,319 bytes used to store database

9. Pomiń komunikaty o błędach w lokalizacji

Ciągłe próby uzyskania dostępu do bazy danych lokalizacji czasami wyświetlają niepotrzebne komunikaty o błędach informujące, że nie masz wymaganych uprawnień, aby mieć dostęp root do mlocate.db, ponieważ jesteś tylko zwykłym użytkownikiem, a nie wymagany superużytkownik.

Aby całkowicie pozbyć się tych komunikatów, użyj komendy -q.


locate "\*.dat" -q*

10. Wybierz inną lokalizację

Jeśli wprowadzasz zapytania, szukając wyników, których nie ma w domyślnej bazie danych mlocate i chcesz uzyskać odpowiedzi z innego pliku mlocate.db zlokalizowanego gdzie indziej w systemie, możesz wskazać zlokalizuj polecenie do innej bazy danych mlocate w innej części systemu za pomocą polecenia -d.


locate -d <new db path> <filename>

Polecenie locate może wydawać się jednym z tych narzędzi, które bez większego wysiłku wykonuje wszystko, o co go poprosisz, ale tak naprawdę, aby proces zachował swoją wydajność, plik mlocate.db od czasu do czasu trzeba dostarczać informacji. Niezastosowanie się do tego może sprawić, że program będzie nieco bezużyteczny.