find
vyhledávání v reálném systému. Je pomalejší, ale vždy aktuální a má více možností (velikost, čas úpravy,...)
locate
používá dříve vytvořenou databázi (příkaz updatedb
). Je mnohem rychlejší, ale používá „starší“ databázi a prohledává pouze jména nebo jejich části.
V každém případě man find
a man locate
vám pomůže dále.
Oba locate
a find
příkazy najdou soubor, ale fungují zcela odlišnými způsoby.
locate
bude fungovat v režimu offline:
- Pro jednoduché vysvětlení slouží databáze indexování souborů v systému Unix nazvaná slocate zobrazí seznam umístění všech souborů dodávaných se systémem Unix. Když spustíte
locate
, použije tuto databázi k vyhledání konkrétního souboru. Problém slocate
pokud jste právě vytvořili soubor, který chcete nyní hledat, najděte nebude fungovat, protože místo databáze není aktuální. K vyřešení tohoto problému můžete použítupdatedb
aktualizujte místo databáze. Probíhálocate
znovu nyní najde nově vytvořený soubor. Mnoho správců systému Linux proto používácron
pravidelně aktualizovat místo databáze.
find
bude pracovat v režimu online/"v reálném čase".
- Ve skutečnosti půjde a prohledá všechny adresáře, aby našel konkrétní zadaný soubor, a prozkoumá každý soubor jeden po druhém. Proto vyžaduje mnoho I/O volání.
Takže na základě povahy je jasné, že najít je rychlejší než najít, ale najít je v reálném čase.
Doufám, že to pomůže objasnit myšlenku. Vše nejlepší. :)
Mohu použít příkaz (například strom), aniž bych jej instaloval v celém systému?
Je možné 'skrýt' proces ze seznamu `ps` nebo `top` v Linuxu