Když jde o soubory a adresáře efektivně hledat na systému Linux, existují dva hlavní příkazy, které jsou k dispozici: find a locate. Oba mají své vlastní silné stránky a případy použití. V této příručce se dozvíš, jak tyto příkazy využít k rychlému a cílenému nalezení požadovaných dat, ať už v domovském adresáři nebo na celém pevném disku.
Nejdůležitější poznatky
- locate je rychlejší, protože využívá databázi, ale nemusí být aktuální.
- find hledá přímo na pevném disku a je vždy aktuální, ale může být pomalejší.
- Oba příkazy nabízejí různé možnosti pro zúžení hledání.
Podrobný návod
1. První přehled: locate
Začni své hledání příkazem locate. To je obzvlášť jednoduché, pokud znáš přesný název nebo část názvu souboru. Představ si, že chceš najít soubor „Slunce“. Přepni se do svého kořenového adresáře a zadej následující příkaz:
locate Slunce
Tento příkaz prohledá databázi pomocí locate a vypíše ti soubory, které obsahují hledaný pojem „Slunce“.

2. Ignorování velikosti písmen
Chceš-li při hledání ignorovat velikost písmen? Pak můžeš použít volbu -i:
locate -i slunce
Tímto způsobem získáš seznam, který obsahuje jak „Slunce“, tak „slunce“.

3. Přesnost pomocí regulárních výrazů
Pokud chceš provést přesnější hledání, můžeš také použít regulární výrazy s locate. Například, abys hledal přesně „ls“, můžeš použít volbu -b spolu s chráněnými závorkami:
locate -b '/ls'
Tímto způsobem dostaneš pouze výsledky, které přesně odpovídají „ls“.

4. Aktualizace databáze
Pokud jsi vytvořil nový soubor a chceš se ujistit, že locate ho najde, musíš aktualizovat databázi. To uděláš pomocí příkazu:
sudo updatedb
Tento příkaz aktualizuje databázi a přivede ji na nejnovější stav.

5. Použití find
Příkaz find je obzvlášť užitečný, pokud chceš definovat přesnější kritéria pro své hledání. Například, abys hledal soubor s názvem „xyz“ ve svém domovském adresáři, můžeš použít následující příkaz:
find ~/ -name 'xyz'
Tímto se prohledá pouze domovský adresář na „xyz“.

6. Filtr podle typu souboru
Abys hledal pouze určité typy souborů, můžeš použít volbu -type. Například, abys našel pouze adresáře:
find /var/log -type d
Tímto příkazem vypíšeš všechny adresáře v adresáři /var/log.

7. Hledání souborů podle velikosti
Pokud chceš hledat soubory na základě jejich velikosti, můžeš použít volbu -size. Například, abys našel soubory větší než 1 MB:
find / -type f -size +1M
Tento příkaz hledá v celém systému soubory, které jsou větší než 1 megabajt.

8. Hledání souborů v určitém časovém období
Také můžeš hledat soubory, které byly změněny během určité doby. Pokud chceš například hledat soubory, které byly změněny v posledních 48 hodinách, použiješ:
find / -type f -mtime -2
Přičemž „-mtime -2“ označuje soubory, které byly změněny v posledních dvou dnech.

9. Kombinace hledacích kritérií
Kombinace několika hledacích kritérií zlepšuje přesnost tvých dotazů. Můžeš filtrovat zároveň podle typu souboru a poslední změny:
find /opt -type f -mtime -1
Tímto způsobem najdeš všechny soubory v adresáři /opt, které byly změněny v posledních 24 hodinách.

10. Závěr k hledání souborů
S příkazy find a locate jsi dobře vybaven, abys efektivně našel soubory a adresáře na svém systému Linux. Můžeš si vybrat mezi rychlostí a aktuálností dat, podle svých potřeb.
Souhrn – Hledání souborů a adresářů v Linuxu – find a locate podrobně
Nalezení souborů a adresářů v Linuxu je s příkazy find a locate hračka. Oba příkazy ti nabízejí různé možnosti, jak hledání přizpůsobit podle svých potřeb.
Časté dotazy
Jaký je rozdíl mezi find a locate?find hledá v reálném čase na pevném disku, zatímco locate používá databázi, a tudíž je rychlejší, ale možná nenabízí aktuální výsledky.
Jak mohu aktualizovat databázi pro locate?Pomocí příkazu sudo updatedb můžeš aktualizovat databázi pro locate.
Možu hledat pomocí find podle velikosti souboru?Ano, je to možné pomocí volby -size.
Jak mohu omezit hledání podle názvu souboru nebo adresáře?Použij volby -name nebo -type, abys se zaměřil na konkrétní názvy nebo typy souborů.
Příklad kombinace hledacích kritérií?Můžeš použít find k hledání souborů typu -type f a zároveň označit, že soubory byly změněny v posledních 24 hodinách s -mtime -1.