Většina uživatelů operačního systému Linux, kteří se snaží lokalizovat určité soubory či adresáře, se obvykle spoléhá na grafické správce souborů. Tyto nástroje sice nabízejí základní funkce vyhledávání, ale často bývají pomalé a jejich výsledky nejsou vždy přesné. Pro efektivnější a rychlejší hledání doporučujeme využít sílu terminálu.
Než se pustíme do detailů, dovolte malé upozornění: na konci tohoto článku naleznete videonávod.
V tomto textu se zaměříme na několik jednoduchých a účinných metod, jak pomocí terminálu v Linuxu rychle najít požadované soubory a adresáře.
1. Kombinace příkazů find a grep
Příkaz find
je mocný nástroj pro vyhledávání souborů v Linuxu. Pracuje z příkazové řádky, kde na základě zadaných klíčových slov prohledává celý systém. Jeho komplexnost je zároveň jeho silou i slabinou. Pokud jej spustíte bez dalších parametrů, vypíše téměř každý soubor na vašem počítači, což znemožňuje efektivní hledání konkrétních položek.
Pro efektivnější využití příkazu find
je vhodné jej kombinovat s dalšími nástroji, zejména s příkazem grep
. Příkaz grep
umožňuje filtrovat výsledky hledání podle konkrétních klíčových slov. Tato kombinace je velmi efektivní. Například, pro nalezení všech souborů a složek obsahujících slovo „bitcoin“ postupujte takto:
find | grep bitcoin
grep
zajistí, že se zobrazí pouze ty výsledky, které obsahují zadané slovo. Stejným způsobem je možné hledat soubory s konkrétní příponou. Například pro vyhledání všech PNG obrázků použijte:
find | grep .png
Protože počet PNG souborů může být vysoký, pro lepší přehlednost je vhodné výstup přesměrovat na další příkaz, jako například more
:
find | grep .png | more
2. Příkaz mlocate
Dalším užitečným nástrojem je příkaz mlocate
. Ve srovnání s find
je zpravidla uživatelsky přívětivější. Důvodem je jeho schopnost vyhledávat na základě klíčových slov bez nutnosti použití dalších parametrů nebo kombinací s jinými příkazy jako grep
. Bohužel není předinstalován na všech distribucích Linuxu. Následující kroky ukazují instalaci na různých distribucích:
Ubuntu
sudo apt install mlocate
Debian
sudo apt-get install mlocate
Arch Linux
sudo pacman -S mlocate
Fedora
sudo dnf install mlocate
OpenSUSE
sudo zypper install mlocate
Po úspěšné instalaci je nutné vytvořit databázi souborů pomocí příkazu updatedb
. Bez této databáze nebude locate
fungovat. Vytvoření databáze vyžaduje oprávnění root, proto je nutné příkaz spustit s sudo
:
sudo updatedb
Proces vytváření databáze může trvat delší dobu v závislosti na rychlosti vašeho disku a počtu souborů. Jakmile terminál znovu přijme textový vstup, je databáze připravena k použití. Pro vyhledávání pak můžete používat příkaz locate
následovaný hledaným výrazem:
locate filename
nebo
locate keyword
nebo
locate "*.FileExtension"
Výsledky vyhledávání můžete uložit do textového souboru pro pozdější použití:
locate keyword >> locate-keyword-results.txt
Filtrování textového souboru s výsledky locate
Pro filtrování výsledků uložených v textovém souboru, můžete použít kombinaci příkazů cat
a grep
. Například, pro nalezení všech MP3 souborů v textovém souboru s výsledky vyhledávání, použijte:
cat locate-mp3-results.txt | grep "mp3 keyword"
grep
zobrazí pouze řádky obsahující hledaný výraz.
3. Kombinace příkazů ls a grep
Kromě vyhledávacích nástrojů existují i další způsoby, jak hledat soubory v terminálu. Hlavní metodou je příkaz ls
(list), který vypíše obsah aktuálního adresáře. Tento příkaz je užitečný, pokud potřebujete najít konkrétní složku. Nicméně samotný ls
může být neefektivní. Pro zlepšení jeho funkčnosti je vhodné jej kombinovat s příkazem grep
. Tato kombinace umožňuje filtrovat výpis podle hledaných klíčových slov.
Nejprve se pomocí příkazu cd
přesuňte do adresáře, kde chcete hledat. Poté použijte kombinaci ls
a grep
:
ls | grep keyword
Pro zobrazení skrytých souborů a složek použijte přepínač -a
:
ls -a | grep keyword