Úvod
locate
command je unixový nástroj používaný pro rychlé vyhledání souborů a adresářů. Příkaz je pohodlnější a efektivnější alternativou k příkazu najít příkaz, který je agresivnější a dokončení hledání trvá déle.
Naproti tomu find
, locate
příkaz neprohledává celý souborový systém, ale prohlíží pravidelně aktualizovanou databázi souborů v systému. Hledání se tak dokončí mnohem rychleji.
V tomto tutoriálu se naučíte nainstalovat a používat locate
příkaz v Linuxu.
Předpoklady
- Systém se systémem Linux.
- Účet s oprávněními správce.
Jak nainstalovat vyhledejte
V závislosti na tom, jakou distribuci Linuxu používáte, locate
balíček nemusí být předinstalovaný.
Chcete-li zkontrolovat, zda find
je nainstalován, zadejte:
locate
Pokud find
je nainstalován ve vaší distribuci, příkaz vytiskne následující výstup:
V tomto tutoriálu jsme použili Ubuntu 20.04, které neobsahuje locate
obslužný program předinstalovaný. V tomto případě je výstupní zpráva:
Nainstalujte locate na Ubuntu a Debian
Při instalaci locate
postupujte podle následujících kroků na Ubuntu nebo Debianu:
1. Aktualizujte úložiště balíčků:
sudo apt update
2. Nainstalujte locate
balíček spuštěním:
sudo apt install mlocate
Nainstalujte locate na CentOS a Fedora
Při instalaci locate
postupujte podle následujících kroků na CentOS nebo Fedoře:
1. Aktualizujte úložiště balíčků:
sudo yum -y update
2. Spuštěním následujícího příkazu nainstalujte locate
:
sudo yum install mlocate
Jak používat příkaz locate v Linuxu s příklady
locate
příkaz vyhledá soubory v Linuxu pomocí názvu souboru. find
se používá k získání okamžitých výsledků a je to nezbytný nástroj, když je prioritou rychlost.
Příkaz provede vyhledávání pomocí databáze obsahující bity souborů s odpovídajícími cestami v systému. Nicméně locate
nekontroluje soubory mimo databázi, což znamená, že nehlásí soubory vytvořené po poslední aktualizaci databáze.
Syntaxe pro locate
příkaz je:
locate [options] [pattern]
Některé užitečné možnosti jsou:
Možnost | Popis |
---|---|
-A, --all | Zobrazí pouze záznamy odpovídající všem zadaným vzorům. |
-b, --basename | Shoduje se pouze se základním názvem se zadanými vzory. |
-c, --count | Namísto názvů souborů vypíše počet odpovídajících položek. |
-d, --database [DBPATH] | Nahradí výchozí databázi [DBPATH] - seznam jmen databázových souborů oddělených dvojtečkou. |
-e, --existing | Zobrazuje pouze položky pro existující soubory. |
-L, --follow | Slouží ke kontrole, zda soubory existují, pokud --existing možnost je specifikována. --follow možnost vynechává přerušené symbolické odkazy. |
-i, --ignore-case | Ignoruje rozlišování malých a velkých písmen. |
-p, --ignore-spaces | Při shodě vzorů ignoruje interpunkci a mezery. |
-t, --transliterate | Používá iconv transliterace, aby se při shodě vzorů ignorovaly diakritika a diakritika. |
-l, --limit, -n [LIMIT] | Slouží k úspěšnému ukončení po nalezení [LIMIT] počet záznamů. |
-0, --null | Odděluje výstupní položky pomocí ASCII NUL znak namísto tisku každého záznamu na nový řádek. |
-S, --statistics | Vytiskne statistiky o každé přečtené databázi na standardní výstup namísto hledání souborů. |
-q, --quiet | Skryje všechny chyby, ke kterým došlo při čtení a zpracování databází. |
-r, --regexp [REGEXP] | Slouží k vyhledávání základního regulárního výrazu [REGEXP] . Zadání této možnosti nepovolí [pattern] argumenty. |
-w, --wholename | Odpovídá pouze celému názvu cesty se zadanými vzory. |
-h, --help | Zobrazí soubor nápovědy se seznamem všech dostupných možností. |
V následujících částech jsou uvedeny užitečné příklady použití locate
příkaz.
Vyhledat soubor
Nejjednodušší způsob použití locate
příkaz je zadat vzor, který chcete hledat.
Například vyhledejte všechny soubory obsahující mysql vzor v názvu souboru spuštěním následujícího příkazu:
locate mysql
Výstup uvádí všechny absolutní cesty k souborům obsahujícím mysql vzor v názvu souboru.
Formátovat výstup
Když je výsledkem hledání dlouhý seznam souborů, použijte odkaz locate
příkaz do less
pro lepší čitelnost a snadnější rolování.
Například:
locate mysql | less
Procházejte výstup stisknutím mezerníku pro posun vpřed, b pro obrácení nebo Q ukončit.
Zobrazit existující soubory
Zatímco locate
příkaz načte výsledky téměř okamžitě, rychlost je spojena s náklady. Někdy se ve výsledcích objeví smazané soubory, protože databáze, kterou locate
čtení nebylo od smazání souborů aktualizováno. Také nové soubory se ve výsledcích nezobrazí, pokud byly vytvořeny po poslední aktualizaci databáze.
Odstraňte tyto nedostatky pomocí -e
možnost prohledat souborový systém a zahrnout do výsledků pouze existující soubory.
Například:
Ve výše uvedeném příkladu jsme nejprve smazali soubor pomocí rm
. Hledání souboru pomocí locate
zobrazuje umístění smazaného souboru. Při použití -e
možnost find
nezobrazuje žádné výsledky od doby, kdy byl soubor odstraněn.
Spočítat existující soubory
Vytiskněte počet odpovídajících souborů namísto názvů souborů a jejich absolutních cest zadáním -c
možnost.
Například:
locate -c mysql
Výstup obsahuje pouze počet souborů obsahujících mysql řetězec v názvu souboru. Všechny ostatní informace jsou potlačeny.
Zakázat chyby při hledání
-q
volba dává pokyn locate
potlačit všechny chyby, které se mohou objevit při čtení databáze.
V následujícím příkladu find
používá k vyhledávání jinou databázi. Příkaz nejprve hlásí, že databáze neexistuje.
Zadáním -q
volba potlačí chybu:
Omezit počet výsledků vyhledávání
Omezte počet výsledků hledání pomocí -n
možnost vyhnout se nadbytečným výsledkům. Například omezte hledání pouze na deset výsledků zadáním:
locate *.txt -n 10
Výstup zobrazuje pouze prvních deset souborů odpovídajících vyhledávacímu vzoru.
Ignorovat soubory rozlišující malá a velká písmena
Ve výchozím nastavení find
při zpracování vstupního dotazu provede vyhledávání rozlišující malá a velká písmena. Pokyn find
ignorovat rozlišování malých a velkých písmen pomocí -i
možnost.
V následujícím příkladu jsme nejprve hledali example_file malými písmeny a find
neukázal žádný výstup, protože název souboru obsahuje velká písmena.
Hledání souboru velkými písmeny zobrazí umístění souboru:
Provedení stejného vyhledávání s malými písmeny a zadání -i
volba ignoruje velká a malá písmena a zobrazí soubor ve výstupu:
Vyhledejte soubor s přesným názvem
Ve výchozím nastavení find
analyzuje vstupní vzor jako řetězec a zobrazí všechny soubory obsahující vstupní vzor v názvu souboru. Například hledání mysql zobrazí všechny soubory obsahující mysql řetězec jako součást názvu souboru, namísto souborů, jejichž celý název souboru je mysql .
Vyhledejte soubor s přesným názvem pomocí -r
možnost (regulární výraz).
Například:
Výstup zobrazuje pouze soubory, jejichž název souboru zcela odpovídá vstupnímu vzoru.
Oddělte výstupní položky pomocí ASCII NUL
Výstupní položky, které locate
produkty jsou odděleny novým řádkem (\n
) charakter. Použijte -0
možnost oddělit položky pomocí ASCII NUL
místo znaku nového řádku.
Například:
locate -0 apache
Výchozím oddělovačem již není znak nového řádku a položky jsou odděleny ASCII NUL
.
Zobrazit statistiku databáze
locate
umožňuje zobrazit různé databázové statistiky, včetně počtu adresářů a souborů uložených v databázi. Chcete-li zobrazit statistiku databáze, zadejte -S
možnost:
locate -S
Výstup uvádí, kterou databázi find
počet adresářů a souborů a velikost databáze v bajtech.
Aktualizovat lokalizační databázi
Databáze, kterou locate
používá automatické aktualizace denně ve stejnou dobu. Chcete-li databázi aktualizovat ručně a ujistit se, že index souboru je správný, spusťte následující příkaz:
sudo updatedb
Dokončení procesu aktualizace trvá několik sekund v závislosti na počtu souborů v systému.
Vyberte jinou databázi mlocate
Pokyn find
chcete-li použít jinou než výchozí databázi, zadáním -d
volba. Tato funkce je užitečná při hledání výsledků, které se nenacházejí ve výchozím mlocate
databáze.
Chcete-li zadat jinou databázi, použijte následující syntaxi:
locate -d [new database path] [pattern]
Ignorujte diakritiku a rozdíly v přízvuku
locate
příkaz používá pro shodu výsledků běžná písmena, což znamená, že názvy souborů obsahující písmena s diakritikou se ve výsledcích vyhledávání nezobrazí. Použijte -t
možnost instruovat locate
ignorovat takové rozdíly mezi písmeny a zahrnout do výsledků diakritiku.
Například:
Hledání příjemné kavárny pattern nezobrazuje ve výše uvedeném příkladu žádné výsledky, protože název souboru obsahuje diakritické znaménko. Vyhledání stejného vzoru znovu a zadání -t
možnost zobrazuje příjemnou kavárnu cesta k souboru jako výsledek, ignorování diakritiky v názvu souboru.