Vyhledávání souborů
V další kapitole si ukážeme řešení situací, pro které by nám jednoduché použití hvězdiček a otazníků v shellu už nestačilo.
Pokud budeme potřebovat specifikovat soubory, které se nachází jinde než v aktuálním pracovním adresáři, např. ve složitější adresářové struktuře, můžeme použít program find
. Tento program nám vyhledá soubory podle našeho zadání a vypíše nám jejich absolutní cesty na terminál.
$ find <kde vyhledávám> <co hledám>
Základní dva parametry, které příkaz find
akceptuje, jsou:
- Adresář, kde chceme vyhledávat - pokud tento parametr vynecháme, vyhledává se v aktuálním pracovním adresáři
- Co hledáme - tady je to trochu složitější, protože zdaleka nemusíme vyhledávat pouze podle názvu souboru. Pokud chceme vyhledávat podle názvu, použijeme parametr
-name
následovaný již známým způsobem cesty specifikovaným pomocí hvězdiček a otazníků. Tento výraz ale musí být v jednoduchých nebo dvojitých uvozovkách! Pro jednoduchost si ukážeme vyhledávání pouze podle názvu, ale dodám jen, že je možné vyhledávat soubory například i podle stáří nebo velikosti.
Abychom si vše prakticky ukázali, budeme muset mírně odbočit do jiné části.
Stažení a rozbalení pracovních dat
Pro stažení souboru data.zip, který je uložen někde na webu, můžeme v prostředí příkazové řádky použít program wget
.
$ wget https://kodim.cz/cms/assets/devops/uvod-do-linuxu/prikazova-radka/specifikace-cesty/vyhledavani-souboru/data.zip
Následně si soubor s příponou .zip
rozbalíme. Použijeme k tomu program unzip
.
$ unzip data.zip
Příklady použití příkazu find
$ find -name '*.json'
$ find -name 'Q1*'
$ find -name '*CZ*'
$ find -name '*CZ*' -or -name '*SK*'