GNU/Linux >> Znalost Linux >  >> Linux

Jaký je rozdíl mezi „vyhledat“ a „najít“ v Linuxu?

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 s locate 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žít updatedb 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ší. :)


Linux
  1. Jaký je rozdíl mezi příkazem locate a find v Linuxu

  2. Jaký je rozdíl mezi env a set (na Mac OS X nebo Linux)?

  3. Jaký je rozdíl mezi fsck a e2fsck?

  1. Jaký je rozdíl mezi adduser a useradd?

  2. Jaký je rozdíl mezi voláním knihovny a voláním systému v Linuxu?

  3. Jaký je rozdíl mezi unlink a rm?

  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. Jaký je rozdíl mezi linuxovým kontejnerem a obrázkem?

  3. Rozdíl mezi [[ $a ==Z* ]] a [ $a ==Z* ]?