Vyhledávání na webu

10 Praktické příklady praktického příkazu 'locate' pro linuxové nováčky


Jednou z nejnepříjemnějších zkušeností, se kterou se většina nových uživatelů platformy Linux obvykle potýká, je neschopnost najít nejjednodušší a přesto efektivnější způsob vyhledávání souborů v jejich systému.

Linux, stejně jako téměř jakýkoli jiný operační systém, využívá několik mechanismů k zodpovězení vyhledávacích dotazů uživatelů. Dva z nejpopulárnějších nástrojů pro vyhledávání souborů, které mají uživatelé k dispozici, se nazývají najít a vyhledat.

Nyní je důležité poznamenat, že oba vyhledávací procesy fungují velmi dobře, ale přesto bude středem tohoto článku více nástroj locate, který je z těchto dvou pohodlnější, protože využívá efektivněji způsoby, jak rychle zpracovat dotazy zadané uživateli.

Nástroj locate funguje lépe a rychleji než jeho protějšek find, protože místo prohledávání systému souborů, když je vyhledávání souborů zahájeno – něco se děje – locate by prohledával databázi. Tato databáze obsahuje bity a části souborů a jejich odpovídající cesty ve vašem systému.

Zde je deset jednoduchých příkazů pro vyhledání, které vám pomohou stát se produktivnějšími s vaším počítačem se systémem Linux.

1. Pomocí příkazu locate

Spuštění příkazu locate k vyhledání souboru je docela snadné a přímočaré. Vše, co musíte udělat, je zadat:


$ locate LAMP-Setup.odt

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

2. Omezte vyhledávací dotazy na konkrétní číslo

Pomocí příkazu -n můžete omezit návraty vyhledávání na požadovaný počet, abyste se vyhnuli redundanci s výsledky vyhledávání.

Pokud například chcete pouze 20 výsledků z vašich dotazů, můžete zadat následující příkaz:


$ 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

Výsledky zobrazí prvních 20 souborů, které končí na .html.

3. Zobrazte počet odpovídajících záznamů

Pokud chcete zobrazit počet všech odpovídajících položek souboru „tecmint“, použijte příkaz locate -c.


$ locate -c [tecmint]*

1550

4. Ignorujte výstupy lokalizace rozlišující malá a velká písmena

Ve výchozím nastavení je locate nakonfigurováno tak, aby zpracovávalo dotazy způsobem rozlišujícím malá a velká písmena, což znamená, že TEXT.TXT vás nasměruje na jiný výsledek než text.txt .

Chcete-li, aby příkaz locate ignoroval rozlišování velkých a malých písmen a zobrazoval výsledky pro dotazy na velká i malá písmena, zadejte příkazy s volbou -i.


$ locate -i *text.txt*

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

5. Obnovte databázi mlocate

Protože příkaz locate spoléhá na databázi nazvanou mlocate. Uvedená databáze musí být pravidelně aktualizována, aby příkazový nástroj fungoval
efektivně.

K aktualizaci databáze mlocate použijte nástroj s názvem updatedb. Je třeba poznamenat, že k tomu, aby to fungovalo správně, budete potřebovat oprávnění superuživatele, je třeba to provést jako oprávnění root nebo sudo.


sudo updatedb

6. Zobrazte pouze soubory přítomné ve vašem systému

Pokud máte aktualizovanou databázi mlocate**, příkaz locate stále vytváří výsledky souborů, jejichž fyzické kopie jsou z vašeho systému odstraněny.

Chcete-li se vyhnout zobrazení výsledků souborů, které se v době děrování příkazu nenacházejí ve vašem počítači, budete muset použít příkaz locate-e. Proces prohledá váš systém, aby ověřil existenci souboru, který hledáte, i když je stále přítomen ve vaší mlocate.db.


$ locate -i -e *text.txt*

/home/tecmint/text.txt

7. Oddělte výstupní položky bez nového řádku

Výchozím oddělovačem příkazu locate je znak nového řádku (\\n). Pokud však dáváte přednost použití jiného oddělovače, jako je ASCII NUL, můžete tak učinit pomocí možnosti příkazového řádku -0.


$ locate -i -0 *text.txt*

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

8. Zkontrolujte svou lokalizační databázi

Pokud máte pochybnosti o aktuálním stavu vaší mlocate.db, můžete snadno zobrazit statistiku lokalizace databáze pomocí příkazu -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. Potlačit chybové zprávy v Locate

Neustálé pokusy o přístup k vaší lokalizační databázi někdy vedou ke zbytečným chybovým zprávám uvádějícím, že nemáte požadovaná oprávnění k přístupu uživatele root k mlocate.db, protože jste pouze normální uživatel a ne požadovaný superuživatel.

Chcete-li tyto zprávy zcela odstranit, použijte příkaz -q.


locate "\*.dat" -q*

10. Vyberte jiné umístění

Pokud zadáváte dotazy, které hledají výsledky, které se nenacházejí ve výchozí databázi mlocate a chcete odpovědi z jiné mlocate.db umístěné někde jinde ve vašem systému, můžete nasměrovat vyhledejte příkaz do jiné databáze mlocate v jiné části vašeho systému pomocí příkazu -d.


locate -d <new db path> <filename>

Příkaz locate se může zdát jako jeden z těch nástrojů, který dělá vše, o co jste ho požádali, bez velkého shonu, ale ve skutečnosti, aby si proces zachoval efektivitu, mlocate.db potřebuje být každou chvíli napájen informacemi. Pokud tak neučiníte, může se stát, že program bude trochu zbytečný.