GNU/Linux >> Znalost Linux >  >> Linux

Vyhledejte příkaz v Linuxu

Jednou z nejběžnějších operací při práci na Linuxu je vyhledávání souborů a adresářů. V systémech Linux existuje několik příkazů, které umožňují vyhledávat soubory, přičemž nejpoužívanější jsou příkazy find a locate.

locate je nejrychlejší a nejjednodušší způsob, jak vyhledávat soubory a adresáře podle jejich jmen.

V tomto článku vysvětlíme, jak používat locate příkaz.

Instalace locate (locate příkaz nenalezen) #

V závislosti na distribuci a způsobu zřízení systému může nebo nemusí být balíček locate ve vašem systému Linux předinstalován.

Chcete-li zkontrolovat, zda locate je nainstalován obslužný program, otevřete terminál a zadejte locate a stiskněte Enter . Pokud je balíček nainstalován, systém zobrazí locate: no pattern to search for specified . Jinak uvidíte něco jako locate command not found .

Pokud locate není nainstalován, můžete jej snadno nainstalovat pomocí správce balíčků vašeho distribuce.

Instalovat locate na Ubuntu a Debianu #

sudo apt update sudo apt install mlocate

Instalovat locate na CentOS a Fedora #

sudo yum install mlocate

Jak locate Práce #

locate příkaz vyhledává daný vzor prostřednictvím databázového souboru, který je vygenerován updatedb příkaz. Nalezené výsledky se zobrazí na obrazovce, jeden na řádek.

Během instalace balíčku mlocate se vytvoří úloha cron, která spustí updatedb příkaz každých 24 hodin. Tím je zajištěna pravidelná aktualizace databáze. Další informace o úloze cron naleznete v /etc/cron.daily/mlocate soubor.

Databázi lze ručně aktualizovat spuštěním updatedb jako root nebo uživatel s právy sudo:

sudo updatedb

Proces aktualizace bude nějakou dobu trvat v závislosti na počtu souborů a adresářů a rychlosti vašeho systému.

Soubory vytvořené po aktualizaci databáze nebudou zobrazeny ve výsledcích vyhledávání.

Ve srovnání s výkonnějším find příkaz, který prohledává systém souborů, locate pracuje mnohem rychleji, ale postrádá mnoho funkcí a může vyhledávat pouze podle názvu souboru.

Jak používat locate Příkaz #

Syntaxe pro locate příkaz je následující:

locate [OPTION] PATTERN...

Ve své nejzákladnější podobě, pokud je použit bez jakýchkoli voleb, locate příkaz vypíše absolutní cestu všech souborů a adresářů, které odpovídají vyhledávacímu vzoru a pro které má uživatel oprávnění ke čtení.

Chcete-li například vyhledat soubor s názvem .bashrc byste napsali:

locate .bashrc

Výstup bude obsahovat názvy všech souborů obsahujících řetězec .bashrc v jejich jménech:

/etc/bash.bashrc
/etc/skel/.bashrc
/home/linuxize/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

Soubor /root/.bashrc soubor se nezobrazí, protože jsme příkaz spustili jako běžný uživatel, který nemá přístupová oprávnění k /root adresář.

Pokud je seznam výsledků dlouhý, pro lepší čitelnost můžete výstup zpracovat do less příkaz:

locate .bashrc | less

locate příkaz také přijímá vzory obsahující globbingové znaky, jako je zástupný znak * . Když vzor neobsahuje žádné globbingové znaky, příkaz hledá *PATTERN* . To je důvod, proč v předchozím příkladu byly zobrazeny všechny soubory obsahující ve svém názvu vyhledávací vzor.

Zástupný znak je symbol používaný k reprezentaci nuly, jednoho nebo více znaků. Chcete-li například vyhledat všechny .md soubory v systému, zadejte:

locate *.md

Chcete-li omezit výsledky vyhledávání, použijte -n následuje počet výsledků, které chcete zobrazit. Následující příkaz vyhledá všechny .py soubory a zobrazí pouze 10 výsledků:

locate -n 10 *.py

Ve výchozím nastavení find provádí vyhledávání rozlišující malá a velká písmena. -i (--ignore-case ) říká locate ignorovat případ a spustit vyhledávání bez rozlišení malých a velkých písmen.

locate -i readme.md
/home/linuxize/p1/readme.md
/home/linuxize/p2/README.md
/home/linuxize/p3/ReadMe.md

Chcete-li zobrazit počet všech odpovídajících položek, použijte -c (--count ) možnost. Následující příkaz vrátí počet všech souborů obsahujících .bashrc v jejich jménech:

locate -c .bashrc
6

Ve výchozím nastavení find nekontroluje, zda nalezené soubory stále existují v systému souborů. Pokud jste smazali soubor po poslední aktualizaci databáze a pokud soubor odpovídá vyhledávacímu vzoru, bude zahrnut do výsledků vyhledávání.

Chcete-li zobrazit pouze názvy souborů, které v daném okamžiku existují locate je spuštěn, použijte -e (--existing ) možnost. Následující příklad vrátí pouze existující .json soubory:

locate -e *.json

Pokud potřebujete spustit složitější vyhledávání, použijte -r (--regexp ), která vám umožňuje vyhledávat pomocí základního regulárního výrazu namísto vzorů. Tuto možnost lze zadat vícekrát.
Například pro vyhledání všech .mp4 a .avi soubory ve vašem systému a ignorovat malá a velká písmena, spustíte:

locate --regex -i "(\.mp4|\.avi)"

Závěr č.

locate příkaz hledá v systému souborů soubory a adresáře, jejichž název odpovídá danému vzoru. Syntaxe příkazu je snadno zapamatovatelná a výsledky se zobrazí téměř okamžitě.

Další informace o všech dostupných možnostech locate typ příkazu man locate ve vašem terminálu.

Pokud máte nějaké dotazy, neváhejte zanechat komentář.


Linux
  1. Linuxový příkaz mv

  2. Linux du command

  3. Vyhledejte příkaz v Linuxu

  1. Linuxový ip příkaz

  2. Linux cd příkaz

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

  1. Linux příkaz ifconfig

  2. Linux Time Command

  3. Příkaz Ping v Linuxu