Jak najít soubory a složky v systému Linux pomocí příkazového řádku

Většina lidí používá k vyhledání souborů v Linuxu grafického správce souborů, například Nautilus v Gnome, Dolphin v KDE a Thunar v Xfce. Existuje však několik způsobů, jak použít příkazový řádek k vyhledání souborů v systému Linux, bez ohledu na to, jaké správce plochy používáte.

Pomocí příkazu Najít

Příkaz „najít“ umožňuje vyhledávat soubory, u nichž znáte přibližné názvy souborů. Nejjednodušší forma příkazu vyhledá soubory v aktuálním adresáři a rekurzivně prostřednictvím jeho podadresářů, které odpovídají zadaným kritériím vyhledávání. Soubory můžete vyhledávat podle jména, vlastníka, skupiny, typu, oprávnění, data a dalších kritérií.

Zadáním následujícího příkazu na výzvu zobrazíte seznam všech souborů nalezených v aktuálním adresáři.

najít.

Tečka za „najít“ označuje aktuální adresář.

Chcete-li najít soubory, které odpovídají určitému vzoru, použijte -nameargument. Můžete použít metaznaky názvu souboru (například *), ale \před každou z nich byste měli umístit znak escape ( ) nebo je uvést do uvozovek.

Například pokud chceme najít všechny soubory, které začínají na „pro“ v adresáři Documents, použijeme cd Documents/příkaz k přepnutí do adresáře Documents a poté zadáme následující příkaz:

najít. -name pro \ *

Zobrazí se seznam všech souborů v aktuálním adresáři začínajících „pro“.

POZNÁMKA: Ve výchozím nastavení příkazu find se rozlišují velká a malá písmena. Pokud chcete, aby hledání slova nebo fráze nerozlišovalo velká a malá písmena, použijte tuto -inamevolbu s příkazem find. Jde o verzi -namepříkazu bez rozlišení velkých a malých písmen .

Pokud findnenalezne žádné soubory odpovídající vašim kritériím, nevytvoří žádný výstup.

Příkaz find má k dispozici mnoho možností pro upřesnění vyhledávání. Další informace o příkazu find získáte spuštěním man find  v okně Terminál a stisknutím klávesy Enter.

Pomocí příkazu Locate

Příkaz locate je rychlejší než příkaz find, protože používá dříve vytvořenou databázi, zatímco příkaz find prohledává ve skutečném systému všechny skutečné adresáře a soubory. Příkaz locate vrátí seznam všech názvů cest obsahujících zadanou skupinu znaků.

Databáze se pravidelně aktualizuje z cronu, ale můžete ji kdykoli aktualizovat sami, abyste získali aktuální výsledky. Chcete-li to provést, zadejte do příkazového řádku následující příkaz:

sudo updatedb

Po výzvě zadejte své heslo.

Základní forma příkazu locate najde všechny soubory v systému souborů, počínaje kořenovým adresářem, které obsahují všechna nebo některá část kritérií vyhledávání.

vyhledejte mydata

Například výše uvedený příkaz našel dva soubory obsahující „mydata“ a jeden soubor obsahující „data“.

Pokud chcete najít všechny soubory nebo adresáře, které obsahují přesně a pouze vaše vyhledávací kritéria, použijte -bmožnost s příkazem locate, jak je uvedeno níže.

vyhledejte -b '\ mydata'

Zpětné lomítko ve výše uvedeném příkazu je globující znak, který poskytuje způsob rozšíření zástupných znaků v názvu nespecifického souboru do sady konkrétních názvů souborů. Zástupný znak je symbol, který lze při vyhodnocení výrazu nahradit jedním nebo více znaky. Nejběžnějšími zástupnými symboly jsou otazník ( ?), který představuje jeden znak, a hvězdička ( *), která představuje souvislý řetězec znaků. Ve výše uvedeném příkladu zpětné lomítko zakazuje implicitní nahrazení „mydata“ výrazem „* mydata *“, takže skončíte pouze s výsledky obsahujícími „mydata“.

Příkaz mlocate je novou implementací locate. Indexuje celý systém souborů, ale výsledky hledání zahrnují pouze soubory, ke kterým má aktuální uživatel přístup. Když aktualizujete databázi mlocate, uchovává informace o časovém razítku v databázi. To umožňuje mlocate zjistit, zda se obsah adresáře změnil, aniž by se obsah znovu načetl, a aktualizace databáze jsou rychlejší a méně náročné na vašem pevném disku.

Když nainstalujete mlocate, změní se binární soubor / usr / bin / locate tak, aby ukazoval na mlocate. Chcete-li nainstalovat mlocate, pokud již není součástí vaší distribuce Linuxu, zadejte do příkazového řádku následující příkaz.

sudo apt-get install mlocate

POZNÁMKA: Později v tomto článku vám ukážeme příkaz, který vám umožní určit, kde se nachází spustitelný soubor příkazu, pokud existuje.

Příkaz mlocate nepoužívá stejný databázový soubor jako standardní příkaz locate. Proto můžete vytvořit databázi ručně zadáním následujícího příkazu do příkazového řádku:

sudo /etc/cron.daily/mlocate

Příkaz mlocate nebude fungovat, dokud nebude databáze vytvořena ručně nebo když je skript spuštěn z cron.

Chcete-li získat další informace o příkazu locate nebo mlocate, zadejte man locatenebo man mlocate  v okně Terminál a stiskněte klávesu Enter. Pro oba příkazy se zobrazí stejná obrazovka nápovědy.

Pomocí příkazu Which

Příkaz „which“ vrací absolutní cestu spustitelného souboru, která je volána při vydání příkazu. To je užitečné při hledání umístění spustitelného souboru pro vytvoření zástupce programu na ploše, na panelu nebo na jiném místě ve správci plochy. Například zadáním příkazu se which firefox zobrazí výsledky zobrazené na obrázku níže.

Ve výchozím nastavení zobrazí příkaz which pouze první odpovídající spustitelný soubor. Chcete-li zobrazit všechny odpovídající spustitelné soubory, použijte -avolbu s příkazem:

který - Firefox

Můžete vyhledat více spustitelných souborů pomocí najednou, jak ukazuje následující obrázek. Jsou zobrazeny pouze cesty k nalezeným spustitelným souborům. V níže uvedeném příkladu byl nalezen pouze spustitelný soubor „ps“.

POZNÁMKA: Příkaz which prohledává pouze proměnnou PATH aktuálního uživatele. Pokud hledáte spustitelný soubor, který je k dispozici pouze pro uživatele root jako normální uživatel, nebudou se zobrazovat žádné výsledky.

Chcete-li získat další informace o příkazu which, zadejte do příkazového řádku v okně Terminálu „man which“ (bez uvozovek) a stiskněte klávesu Enter.

Pomocí příkazu Whereis

Příkaz whereis se používá k zjištění, kde jsou umístěny binární, zdrojové a manuálové soubory příkazu. Například psaní whereis firefox na výzvu zobrazí výsledky, jak je znázorněno na následujícím obrázku.

Pokud chcete, aby se zobrazovala pouze cesta ke spustitelnému souboru, a nikoli cesty ke zdrojové a ruční stránce (ual), použijte tuto -bmožnost. Například se příkaz whereis -b firefoxzobrazí pouze /usr/bin/firefoxjako výsledek. To je užitečné, protože s největší pravděpodobností budete hledat spustitelný soubor programu častěji, než byste hledali zdrojové a manuálové stránky pro tento program. Můžete také vyhledat pouze zdrojové soubory ( -s) nebo pouze manuálové stránky ( -m).

Další informace o příkazu whereis zadejte man whereis do okna Terminál a stiskněte klávesu Enter.

Pochopení rozdílu mezi příkazem Whereis a příkazem Which

Příkaz whereis vám ukáže umístění binárních, zdrojových a manuálových stránek příkazu, zatímco příkaz which vám ukáže pouze umístění binárního souboru příkazu.

Příkaz whereis prohledává seznam konkrétních adresářů pro binární, zdrojové a man soubory, zatímco příkaz which prohledává adresáře uvedené v proměnné prostředí PATH aktuálního uživatele. U příkazu whereis lze seznam konkrétních adresářů najít v části SOUBORY na manuálových stránkách příkazu.

Pokud jde o výsledky zobrazené ve výchozím nastavení, příkaz whereis zobrazí vše, co najde, zatímco příkaz, který zobrazí pouze první spustitelný soubor, který najde. Můžete to změnit pomocí výše -apopsané možnosti pro příkaz which.

Protože příkaz whereis používá pouze cesty pevně zakódované do příkazu, nemusí vždy najít to, co hledáte. Pokud hledáte program, o kterém si myslíte, že by mohl být nainstalován v adresáři, který není uveden na manuálových stránkách příkazu whereis, můžete použít příkaz which s -amožností vyhledat všechny výskyty příkazu v celém systému.