GNU/Linux >> Znalost Linux >  >> Ubuntu

3 způsoby, jak najít soubory a adresáře v Linuxu

Tento článek probere, jak můžete najít soubory a adresáře v Linuxu. Budeme používat příkazy locate, find a grep. Každý příkaz je podrobně popsán níže.

Použili jsme Ubuntu 20.04 LTS k demonstraci procesu.

Použití příkazu Locate k vyhledání souborů a adresářů v Linuxu

Příkaz locate nabízí rychlejší výsledky při čtení databáze mlocate.db, která obsahuje všechny cesty k souborům ve vašem systému.

Instalovat vyhledejte

Pokud se zobrazí níže uvedená zpráva, musíte nainstalovat locate.

Příkaz pro instalaci locate je:

sudo apt-get install mlocate

Prvním krokem je zadání hesla. Po zadání hesla se spustí instalace.

Po instalaci je třeba aktualizovat vyhledávací databázi. Protože locate spoléhá na tuto databázi, musíte ji pravidelně aktualizovat, abyste zajistili efektivitu. K aktualizaci databáze mlocate potřebujete oprávnění superuživatele.

sudo updatedb

Vyhledávání souborů pomocí názvu souboru

Chcete-li vyhledat soubory podle jejich jmen, použijte následující příkaz:

locate {filename}

Budeme hledat soubor s názvem „textfile.txt“, takže příkaz bude:

locate textfile.txt

Výsledkem bude cesta k umístění vašeho souboru.

Ignorování rozlišování malých a velkých písmen

Ve výchozím nastavení lokalizujte dotazy procesů tak, aby se rozlišovala velká a malá písmena, což znamená, že textfile.txt a TEXTFILE.TXT budou ukazovat na různé výsledky vyhledávání.

Jak vidíte, TEXTFILE.TXT nelze najít.

Rozlišování malých a velkých písmen můžete ignorovat pomocí –i volba. Příkaz je:

locate –i {file name}

Jak můžete vidět, soubor byl nyní nalezen.

Použití příkazu find k vyhledání souborů a adresářů v Linuxu

Ve srovnání s lokalizací je hledání mnohem výkonnější, ale pomalejší. Je pomalejší, protože vyhledává soubory na disku. Nález je skvělý, že v Linuxu můžete najít soubory a adresáře na základě skupin uživatelů, kdy byly soubory upraveny nebo k nim přistupovat, oprávnění k souborům, data a velikosti.

Hledání souborů v aktuálním adresáři

Všechny soubory s určitým názvem ve vašem aktuálním adresáři můžete zobrazit pomocí následujícího příkazu:

find . -name {filename}

V aktuálním adresáři uvidíte všechny soubory, které mají název „textfile.txt“.

Hledání souborů v domovském adresáři

Chcete-li vyhledat soubory ve svém domovském adresáři, použijte /home . Příkaz bude:

find /home -name {filename}

Ve svém domovském adresáři uvidíte všechny soubory s názvem Hello.txt.

Ignorování rozlišování malých a velkých písmen

Ve výchozím nastavení se v dotazech na procesy rozlišují velká a malá písmena, což znamená, že hello.txt a Hello.txt budou ukazovat na různé výsledky vyhledávání.

Jak vidíte, hello.txt nebyl nalezen.

Chcete-li ignorovat rozlišování malých a velkých písmen, použijte následující příkaz:

find –iname {file name}

Jak můžete vidět na obrázku níže, hello.txt byl nalezen.

Hledání pomocí zástupných znaků

K vyhledávání souborů podle určitých kritérií můžete použít zástupné znaky. Hvězdička (* ) zástupný znak umožňuje porovnat instance znaku.

Níže uvedený příklad používá následující příkazy:

find . –name ‘*he’

Tento příkaz vypíše všechny názvy souborů končící na „he“

find . –name ‘he*’

Tento příkaz vypíše všechny názvy souborů začínající na „he“

Najít pomocí velikosti souboru

Chcete-li najít soubory podle velikosti, použijte:

find –size {filesize} –type f

Tento příkaz hledá soubory, které mají velikost 68 bajtů.

Chcete-li vyhledat soubory větší nebo menší než konkrétní velikost, přidejte „+ “ nebo „ ” na váš příkaz.

find –size -{filesize} –type f

Níže uvedený příklad hledá soubory menší než 512 bajtů.

Tento příkaz hledá soubory větší než 512 bajtů.

Najít soubory podle toho, kdy byly naposledy upraveny

Pomocí níže uvedeného příkazu vyhledejte soubory podle toho, kdy byly naposledy upraveny:

find -iname "*.txt" -mtime -60

Tento příkaz hledá soubory, které byly změněny za posledních 60 dní.

Najít adresáře

Chcete-li najít adresář, použijte příkaz:

find –name “{file name}” –type d

Jako výsledek vidíte cestu k adresáři.

Najít soubory pouze pro čtení

Chcete-li najít soubory pouze pro čtení, použijte příkaz

find / -perm /u=r

Všechny soubory pouze pro čtení můžete vidět v terminálu.

Použití příkazu Grep k vyhledání souborů a adresářů v Linuxu

Grep, Global Regular Expression Print se v Linuxu používá k vyhledání řetězců v konkrétním souboru. Pokud grep najde tyto znaky, vytiskne řádek. Příkaz je:

grep {string} {file name}

V níže uvedeném příkladu budeme hledat řetězec „is“ v souboru „textfile.txt“. Můžete vidět řádky, které obsahují „je“.

Tisk čísel řádků

Čísla řádků spolu s odpovídajícím řetězcem vytisknete pomocí:

grep {string} {filename} –n

Níže uvedený příklad vytiskne číslo řádku, kde se nachází řetězec „is“.

Invertovat shodu

Tato možnost vám umožní vytisknout čáry, které neodpovídají zadanému vzoru.

grep {string} {file name} –v

Níže uvedený příklad vytiskne řádek z textového souboru „textfile.txt“, který neobsahuje „je“.

Ignorování rozlišování malých a velkých písmen

Ve výchozím nastavení grep zpracovává dotazy způsobem rozlišujícím velká a malá písmena, což znamená, je a IS bude ukazovat na různé výsledky vyhledávání.

Jak vidíte, „IS“ nelze nalézt.

Pomocí následujícího příkazu ignorujte malá a velká písmena:

grep {string} {file name} –i

Rekurzivní vyhledávání

Grep vám ve výchozím nastavení neumožňuje prohledávat adresáře. Zobrazí se následující chyba:

V adresářích můžete vyhledávat pomocí:

grep {string} . –R

Níže uvedený příklad hledá řetězec „some“ v aktuálním adresáři.

V tomto článku jsme viděli, jak locate, find a grep funguje při hledání souborů a adresářů v Linuxu. Prošli jsme také několik případů, jak se používají.


Ubuntu
  1. Příkazy hledání pro Linux

  2. Linux Odstraňte soubory a adresáře

  3. Najděte a zkopírujte soubory

  1. Najděte soubory a adresáře v Linuxu pomocí příkazu find

  2. Najděte soubory a adresáře v Linuxu jako profík

  3. Najděte největší soubory a adresáře v Linuxu

  1. Jak najít soubory v Linuxu

  2. Jak kopírovat soubory a adresáře v Linuxu

  3. Jak najít a odstranit prázdné adresáře a soubory v Linuxu