GNU/Linux >> Znalost Linux >  >> Linux

Linux Locate Command pro začátečníky (8 příkladů)

I když je find bezpochyby jedním z nejpopulárnějších a nejvýkonnějších nástrojů příkazového řádku pro vyhledávání souborů v Linuxu, není dostatečně rychlý pro situace, kdy potřebujete okamžité výsledky. Pokud chcete prohledat soubor v systému pomocí příkazového řádku a rychlost je nejvyšší prioritou, můžete použít další příkaz:Locate .

V tomto tutoriálu probereme lokaci pomocí snadno pochopitelných příkladů. Vezměte prosím na vědomí, že všechny zde uvedené pokyny/příklady byly testovány na Ubuntu 16.04 LTS a najděte verze, kterou jsme použili, je 0.26.

1. Jak používat příkaz locate v Linuxu

Příkaz locate se používá velmi snadno. Jediné, co musíte udělat, je předat mu název souboru, který chcete hledat.

locate [filename]

Pokud například chcete vyhledat všechny názvy souborů, které obsahují řetězec 'dir2', mohu to udělat pomocí locate následujícím způsobem:

Poznámka :Příkaz 'locate dir2' (bez hvězdiček) také funguje tak, že locate implicitně nahradí vámi zadané jméno (řekněme NAME) za *NAME*.

2. Jak funguje příkaz locate nebo proč je tak rychlý

Důvod, proč je lokalizace tak rychlá, je ten, že nečte souborový systém pro hledaný soubor nebo název adresáře. Ve skutečnosti odkazuje na databázi (připravenou příkazem updatedb ) najít to, co uživatel hledá, a na základě tohoto vyhledávání vytvoří svůj výstup.

I když je to dobrý přístup, má své nevýhody. Hlavním problémem je, že po každém vytvoření nového souboru nebo adresáře v systému je nutné aktualizovat databázi nástroje, aby správně fungoval. Jinak příkaz nebude schopen najít soubory/adresáře, které byly vytvořeny po poslední aktualizaci databáze.

Pokud se například pokusím najít soubory s názvy obsahujícími řetězec „tosearch“ v adresáři „Downloads“ mého systému, najít příkaz vytvoří na výstupu jeden výsledek:

Ale když se pokusím provést stejné vyhledávání pomocí příkazu locate, neprodukuje žádný výstup.

To znamená, že vyhledávání v databázi nebyla po vytvoření souboru v systému aktualizována. Pojďme tedy aktualizovat databázi, což lze provést pomocí updatedb příkaz. Uděláte to takto:

sudo updatedb

A když teď znovu spustím stejný příkaz locate, zobrazí se soubory ve výstupu:

Podobně, po odstranění souboru nebo adresáře se musíte ujistit, že byla aktualizována lokalizační databáze, jinak bude příkaz při prohledávání nadále zobrazovat soubor ve svém výstupu.

3. Jak zajistit, aby locate vytisklo počet nebo počet odpovídajících záznamů ve výstupu

Jak jsme viděli, příkaz locate vytváří ve výstupu název odpovídajících souborů spolu s jejich úplnými nebo absolutními cestami. Ale pokud chcete, můžete nechat nástroj potlačit všechny tyto informace a místo toho pouze vytisknout počet nebo počet odpovídajících záznamů. To lze provést pomocí -c možnost příkazového řádku.

4. Jak vynutit locate tisknout pouze ty položky, které odpovídají existujícím souborům

Jak jsme již diskutovali dříve v tomto článku, pokud je soubor odstraněn ze systému, pak dokud znovu neaktualizujete lokalizační databázi, příkaz bude na výstupu zobrazovat tento název souboru. V tomto konkrétním případě však můžete přeskočit aktualizaci databáze a přesto mít správné výsledky ve výstupu pomocí -e možnost příkazového řádku.

Například jsem ze svého systému odstranil soubor 'filetosearch.txt'. To bylo potvrzeno příkazem find, který již nebyl schopen prohledat soubor:

Když jsem však provedl stejnou operaci pomocí locate, stále se ve výstupu zobrazoval soubor:

A víme proč – protože databáze locate nebyla po smazání souboru aktualizována. Nicméně pomocí -e volba se povedla:

Zde je to, co o této možnosti říká manuálová stránka locate:"Tisknout pouze záznamy, které odkazují na soubory existující v době spuštění locate."

5. Jak zajistit, aby lokace ignorovala rozlišení velkých a malých písmen

Ve výchozím nastavení se při vyhledávací operaci, kterou příkaz locate provádí, rozlišují velká a malá písmena. Pomocí -i však můžete vynutit, aby nástroj ignoroval rozlišení velkých a malých písmen možnost příkazového řádku.

Například mám v systému dva soubory s názvem 'newfiletosearch.txt' a 'NEWFILETOSEARCH.txt'. Takže, jak vidíte, názvy souborů jsou stejné, jen se liší velikost písmen. Pokud se zeptáte najít Chcete-li hledat, řekněme „*tosearch*“, pak se ve výstupu zobrazí pouze název s malými písmeny:

Ale použití volby -i příkazového řádku přinutí příkaz ignorovat velká a malá písmena a oba názvy souborů jsou vytvořeny ve výstupu:

6. Jak oddělit výstupní položky pomocí ASCII NUL

Ve výchozím nastavení jsou výstupní položky, které vytváří příkaz locate, odděleny znakem nového řádku (\n). Ale pokud chcete, můžete změnit oddělovač a místo nového řádku mít ASCII NUL. To lze provést pomocí -0 možnost příkazového řádku.

Například jsem provedl stejný příkaz, jaký jsme použili v předchozí části výše, ale přidal jsem volbu příkazového řádku -0:

Takže můžete vidět, že oddělovač nového řádku tam již není - byl nahrazen NUL.

7. Jak zobrazit informace o lokalizační databázi

V případě, že chcete vědět, které umístění databáze používá, stejně jako další statistiky o databázi, použijte -S možnost příkazového řádku.

8. Jak vyhledat přesný název souboru pomocí locate

Ve výchozím nastavení, když hledáte název souboru pomocí locate, pak je vámi předané jméno - řekněme NAME - implicitně nahrazeno *NAME*. Pokud například hledám název souboru 'testfile', pak se ve výstupu vytvoří všechna jména odpovídající *testfile*:

Ale co když je požadavek hledat soubory s názvy přesně odpovídajícími 'testfile'? V tomto případě budete muset použít regulární výrazy, které lze povolit pomocí -r možnost příkazového řádku. Zde je návod, jak můžete vyhledat pouze 'testfile' pomocí regulárních výrazů:

locate -r /testfile$

Pokud s regulárními výrazy teprve začínáte, přejděte sem.

Závěr

Vyhledat nabízí mnohem více možností, ale ty, které jsme zde probrali, by vám měly stačit k tomu, abyste získali základní představu o nástroji příkazového řádku a také abyste mohli začít. Doporučujeme vám, abyste nejprve vyzkoušeli všechny zde popsané možnosti na vašem počítači se systémem Linux a poté přešli na jiné, které najdete na manuálové stránce nástroje.

V případě jakýchkoli pochybností nebo dotazů neváhejte napsat komentář.


Linux
  1. Linux cd command tutorial pro začátečníky (8 příkladů)

  2. Linux killall příkaz pro začátečníky (8 příkladů)

  3. vyhledejte příklady příkazů v systému Linux

  1. 10 příkladů příkazů „rm“ pro linuxové začátečníky

  2. 10 příkladů příkazů Linux Cat pro začátečníky

  3. Linux Date Command Tutorial pro začátečníky (8 příkladů)

  1. Výuka příkazů Linux pro začátečníky (5 příkladů)

  2. Linux df Command Tutorial pro začátečníky (8 příkladů)

  3. Linuxový příkaz dir pro začátečníky (10 příkladů)