Vyhledávání souborů

Stránky: E-learning VŠCHT Praha
Kurz: Linux, shell
Kniha: Vyhledávání souborů
Vytiskl(a): Nepřihlášený host
Datum: pondělí, 7. října 2024, 05.18

Popis

sdgdfag

1. Obecně o vyhledávání souborů

Pro hledání souborů pomocí příkazové řádky v systému Linux můžeme využít dva příkazy - locate a find. Ovšem každý z nich přistupuje k hledání zcela odlišným způsobem. Detaily vysvětlíme v následujících kapitolách.


2. Příkaz locate

Příkaz locate využívá k hledání svoji vlastní databázi absolutních cest ke všem souborům, které v systému existují. Zadaný výraz se hledá jako část textového řetězce v každém záznamu uvedené databáze cest. Databáze se automaticky aktualizuje, ale pouze jednou denně. V tom je nevýhoda, že uživatel nemusí vždy najít zcela aktuální výsledky. Aktualizaci databáze lze vyvolat manuálně, nicméně to může udělat pouze uživatel root, nebo uživatel s nastavenými právy superuživatele. Výhodou však je, že prohledávání databáze je velmi rychlé.



3. Příkaz find

Příkaz find má významně strukturovanější syntaxi. Je poněkud pomalejší než příkaz locate, protože vždy prohledává disk v reálném čase, nicméně disponuje velkým množstvím přepínačů a možnostmi definice parametrů pro hledání. Kromě běžných přepínáčů, které lze nastudovat z dokumentace k příkazu, disponuje tzv. testy, díky kterým lze blíže specifikovat, co uživatel hledá. Nejčastěji se používají testy

  • -name - hledá soubor podle uvedeného jména
  • -type - hledá podle typu souboru (f - normalní soubor, d - adresář, l - link)
  • -user [username] - hledá soubory, jejichž vlastníkem je uvedený uživatel
  • -size [filesize] - hledá soubory s uvedenou velikostí
  • -empty - hledá prázdné soubory
  • -mindepth n | -maxdepth n - hledá soubory na uvedené úrovni vnoření


Testy je možné kombinovat a používat jich více současně. Příkaz find defaultně vyhledává od aktuálního místa směrem níže ke vnořeným adresářům. Je-li potřeba začít hledání z jiného místa, uvede se jako první argument cesta k tomuto místu.



Kromě testů disponuje příkaz find sadou akcí, které umožní provést příslušnou akci s nalezenými výsledky. Nejčastější akce jsou

  • -delete - nalezené soubory následně smaže
  • -ls - provede výpis detailních informací u nalezených souborů
  • -exec - spustí externí příkaz shellu pro každý soubor ze sady nalezených záznamů (v závěru této akce se použijí speciální operátory {} \; kde {} reprezentuje sadu nalezených výsledků, středník ukončuje samotný příkaz v části exec, protože se ale jedná o funkční operátor, musí být potlačena jeho funkce zpětným lomítkem)