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.