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 slocatepokud 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žítupdatedbaktualizujte místo databáze. Probíhálocateznovu nyní najde nově vytvořený soubor. Mnoho správců systému Linux proto používácronpravidelně 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