GNU/Linux >> Znalost Linux >  >> Linux

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

Tato příručka vám ukáže, jak používat příkazy „najít“ a „vyhledat“ k vyhledání souborů a adresářů v systémech souborů Linux.

Obsah

  • Najděte soubory a adresáře v systému Linux pomocí příkazu find
    • Najít soubory podle názvu
    • Najít soubory podle dílčího názvu
    • Najít soubory podle velikosti
    • Vyhledání souborů pomocí časových razítek
    • Najít soubory podle vlastníka
    • Najít soubory podle oprávnění
    • Najít adresáře podle názvu
  • Najděte soubory a adresáře v systému Linux pomocí příkazu locate
    • Najít soubory podle názvu
    • Najít soubory podle dílčího názvu
    • Omezit výsledky vyhledávání
    • Zobrazte počet odpovídajících záznamů
    • Získejte informace o lokalizační databázi
  • Závěr

Jsou chvíle, kdy chcete získat přístup ke konkrétnímu souboru, ale nemůžete ho najít ve svém systému Linux. I když existuje mnoho způsobů, jak můžeme vyhledávat a lokalizovat soubory a adresáře v Linuxu, nejjednodušší a nejrychlejší je pravděpodobně přes terminál.

find command je jedním z nejdůležitějších a často používaných nástrojů příkazového řádku v Linuxu.

Najít soubory a adresáře v Linuxu pomocí příkazu find

Linux find command je výkonný nástroj, který umožňuje správcům systému vyhledávat a spravovat soubory a adresáře na základě široké škály vyhledávacích kritérií. Podporuje vyhledávání podle souboru, složky, názvu, data vytvoření, data modifikace, vlastníka a oprávnění.

find příkaz se používá k vyhledání souborů a adresářů a provádění následných operací s nimi. Rekurzivně vyhledává soubory a adresáře v každé cestě. Když tedy find příkaz narazí na adresář uvnitř dané cesty, hledá v něm další soubory a adresáře.

Najít soubory podle názvu

Obecná syntaxe find příkaz je:

find [path] [options] [expression]

Pojďme si tuto syntaxi rozebrat:

  • path : Definuje počáteční adresář, kde bude funkce find vyhledávat soubory.
  • options : Ovládá find chování procesu a metoda optimalizace.
  • expression : Tento atribut se skládá z možností, vzorů vyhledávání a akcí oddělených operátory.

Nejběžnějším použitím příkazu find je hledání souboru podle jeho názvu. -type f sděluje systému, že hledáme Soubor. Chcete-li najít soubor pomocí názvu souboru, použijte -name příznak s výchozím příkazem.

Chcete-li například vyhledat soubor s názvem report.pdf/home adresář, použijete následující příkaz:

find /home -type f -name report.pdf

Jak víte, Linux rozlišuje velká a malá písmena v názvech souborů , takže pokud hledáte soubor s názvem Report.pdf , příkaz uvedený výše nevrátí žádné výsledky. V takovém případě budete muset použít -iname možnost namísto -name .

-iname spouští vyhledávání bez rozlišení malých a velkých písmen , takže můžeme udělat toto:

find /home -type f -iname report.pdf

Tento příkaz vyhledá soubor, který má některý z následujících názvů:report.pdf , Report.pdf , REPORT.pdf , atd.

Najít soubory podle dílčího názvu

Můžete použít metaznaky názvu souboru jako je hvězdička (* ), ale měli byste buď vložit znak escape (\ ) před každou z nich nebo je uzavřete do uvozovek.

Chcete-li například najít všechny soubory končící na .pdf , můžete spustit:

find /home -type f -name '*.pdf'

což je stejné jako:

find /home -type f -name \*.pdf

Podobně vyhledáte všechny soubory ve vašem systému Linux, jejichž názvy začínají report , můžete spustit:

find /home -type f -name 'report*'

Najít soubory podle velikosti

Pomocí find můžeme také snadno dosáhnout něčeho, co může vypadat komplikovaně:nalezení souborů větších nebo menších než je daná velikost .

-size možnost find nám umožňuje vyhledávat soubory určité velikosti. + a - předpony znamenají „větší než“ a „menší než“, jako obvykle.

Níže uvedený příklad vyhledá všechny soubory větší než 1 gigabajt. Všimněte si použití + znak:

find /home -type f -size +1G

Ve výše uvedeném příkladu přípona G značí gigabajty. Další oblíbené dostupné přípony jsou:

  • c :bajtů.
  • k :kilobajty.
  • M :Megabajty.

Výše uvedené find příkaz byl použit k vyhledání všech souborů větších než zadaná velikost. Dále find příklad příkazu vyhledá všechny soubory o velikosti menší než 200 kilobajtů. Všimněte si použití - znak:

find /home -type f -size -200k

Nyní vás pravděpodobně zajímá, jak najít soubory v Linuxu mezi určitou velikostí . Pomocí následujícího příkazu můžete například najít soubory o velikosti mezi 100 megabajty a 120 megabajty:

find /home -type f -size +100M -size -120M

Najít soubory pomocí časových razítek

Linux přiděluje konkrétní časová razítka každému souboru v systému souborů. find příkaz může také vyhledávat soubory na základě jejich poslední úpravy , přístup nebo změna času.

-mtime volba se používá k určení počtu dnů, kdy je soubor starý. Výraz lze použít dvěma způsoby:

  • -mtime +N najde soubory upravené více než N před dny (pro více než).
  • -mtime -N najde soubory upravené méně než N před dny (za méně než).

Pokud například zadáte +3 , najde všechny soubory z /home adresář starší než 3 dny.

find /home -type f -mtime +3

Podobně, pokud chceme najít všechny soubory, které se za posledních 24 hodin změnily:

find /home -type f -mtime -1

Stejným způsobem můžete použít -mmin N výraz spoléhat na minuty místo na dny.

Tento příkaz například najde všechny soubory z /home adresář upraven na poslední chvíli.

find /home -type f -mmin -1

Kromě toho můžeme dokonce skládat výrazy. Zde je návod, jak najít soubory v Linuxu, které byly změněny před méně než 60 minutami a před více než 30 minutami:

find /home -type f -mmin -60 -mmin +30

Najít soubory podle vlastníka

Chcete-li najít soubory vlastněné konkrétním uživatelem nebo skupinou, použijte -user-group možnosti.

Chcete-li například najít soubory vlastněné uživatelem john v /home složka serveru:

find /home -type f -user john

Najít všechny soubory patří do skupiny nazvané www-data v /home adresář:

find /home -type f -group www-data

Najít soubory podle oprávnění

 -perm umožňuje uživatelům vyhledávat soubory s konkrétní sadou oprávnění .

Níže uvedený příkaz vyhledá soubory s oprávněním přesně 644 v aktuálním adresáři.

find /home -type f -perm 644

Použití - volba znamená „je nastavena alespoň tato úroveň oprávnění a jakákoli vyšší oprávnění.“

find /home -type f -perm -644

Tento příklad zobrazuje všechny zdroje v /home adresář s alespoň 644 oprávnění. To znamená, že soubory s oprávněními jako 777 , 745 , 666 , 655 , 654 , atd., by odpovídaly, zatímco soubory s oprávněními 642 , 611 , 600 , 544 , atd., by se neshodovalo.

Najít adresáře podle názvu

Všechny příklady, které jsme dosud viděli, vracejí soubory. Pokud však potřebujete hledat pouze adresáře, můžete použít -type d přepínač.

Jinými slovy, můžete zabránit find příkaz v Linuxu z hledání jiných typů souborů kromě adresářů pomocí -type d příznak (d znamená adresář).

Chcete-li najít složku s názvem scripts v /home adresář, spusťte:

find /home -type d -name scripts

Podobně všechny ostatní dosud zobrazené možnosti jsou také použitelné při vyhledávání adresářů.

Další informace o find příkaz v systému Linux, podívejte se na stránku jeho příručky.

Najít soubory a adresáře v Linuxu pomocí příkazu locate

Zatímco find je bezpochyby jedním z nejpopulárnějších a zároveň nejvýkonnějších nástrojů příkazového řádku pro vyhledávání souborů v Linuxu, není dostatečně rychlý pro situace, kdy potřebujete okamžité výsledky.

locate příkaz je rychlejší než find protože používá dříve vytvořenou databázi, zatímco find příkaz prohledává v reálném čase všechny aktuální adresáře a soubory.

Pokud find není nainstalován, můžete jej snadno nainstalovat pomocí správce balíčků vaší distribuce Linuxu.

Na Ubuntu nebo jakémkoli jiném systému založeném na Debianu zadejte následující příkaz:

sudo apt install mlocate

Pokud používáte Fedora nebo CentOS, použijte místo toho tento příkaz:

sudo dnf install mlocate

Uživatelé Arch Linuxu musí provést:

sudo pacman -S mlocate

Před locate lze použít, bude potřeba vytvořit databázi. To se provádí pomocí updatedb příkaz, který (jak název napovídá) aktualizuje databázi.

sudo updatedb

Databáze bude aktualizována automaticky na denní bázi, ale můžete ji také kdykoli aktualizovat sami, abyste získali aktuální výsledky.

Najít soubory podle názvu

locate příkaz se velmi snadno používá. Jediné, co musíte udělat, je předat mu název souboru, který chcete hledat.

locate report.pdf

Stejně jako find příkaz locate je nakonfigurován tak, aby zpracovával dotazy způsobem rozlišujícím malá a velká písmena. Chcete-li mít locate příkaz ignorovat rozlišování malých a velkých písmen a zobrazit výsledky pro dotazy na velká i malá písmena, musíte použít -i možnost.

locate -i rEpoRT.pdf

Najít soubory podle dílčího názvu

Pokud chcete vyhledat všechny názvy souborů, které mají řetězec .pdf v nich, pak to můžete udělat pomocí locate následujícím způsobem:

locate '*.pdf'

Omezit výsledky vyhledávání

Můžete omezit návratnost vyhledávání na požadovaný počet, abyste se vyhnuli nadbytečnosti výsledků vyhledávání pomocí -n možnost.

Pokud například chcete pouze 10 výsledků ze svých dotazů, můžete zadat následující příkaz:

locate -n 10 '*.pdf'

Zobrazit počet odpovídajících záznamů

Chcete-li spočítat počet výskytů názvu souboru nebo vyhledávacího vzoru pomocí příkazu locate, vyvolejte -c možnost, jak je znázorněno.

locate -c '*.pdf'

Získat informace o databázi lokalit

Chcete-li získat více informací o lokalizační databázi mlocate.db které locate katalogizoval, použijte -S možnost:

locate -S
Database /var/lib/mlocate/mlocate.db:
	72376 directories
	1142596 files
	98622214 bytes in file names
	33950606 bytes used to store database

Pro případ, že byste potřebovali, zde je manuálová stránka pro locate příkaz.

Závěr

Uživatelé Linuxu mají k dispozici dva nejpoužívanější nástroje pro vyhledávání souborů, které se nazývají findfind . Oba jsou dobré způsoby, jak najít soubory ve vašem systému. Je na vás, abyste se rozhodli, který z těchto nástrojů je v každé situaci vhodný.

Tento článek by vám měl poskytnout základní informace o tom, jak najít soubory ve vašich systémech Linux. I když byly možnosti prezentovány jednotlivě, měli byste mít na paměti, že je lze kombinovat, abyste mohli ještě více specifikovat soubory, které hledáte.


Linux
  1. Linux – standardní a/nebo společné adresáře na operačních systémech Unix/linux?

  2. Příkazy hledání pro Linux

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

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

  2. Jak zjistit nejlepší adresáře a soubory (místo na disku) v Linuxu

  3. Najděte a zkopírujte soubory

  1. Snadný způsob, jak skrýt soubory a adresáře v Linuxu

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

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