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áfindchová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 v /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 +Nnajde soubory upravené více nežNpřed dny (pro více než).-mtime -Nnajde soubory upravené méně nežNpř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 a -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í find a find . 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.