40 Nejlepších Příkladů příkaz Najít v Linux

Linux find příkaz je výkonný nástroj, který umožňuje správci systému, jak najít a spravovat soubory a adresáře na základě široké škály kritérií vyhledávání. Může najít adresáře a soubory podle jejich jména, typu nebo rozšíření, velikosti, oprávnění atd.

kromě vyhledání souborů a adresářů vám kombinace příkazu find s ostatními umožňuje podniknout kroky k výsledkům., Přidání -exec volba umožňuje administrátoři spouštět externí příkazy a provádět akce, jako je kopírování, přesouvání, mazání nebo změně oprávnění souborů, které odpovídají zadaným kritériím jako je velikost, jméno, atd.

v tomto článku začneme vysvětlením základních příkazů Linux find s příklady. To vám ukáže, jak najít soubory a adresáře. Pak budeme ukázat vám, jak použít -exec možnost působit na soubory či adresáře na základě jejich velikosti, oprávnění, atd.,

obecná syntaxe pro příkaz najít, je,

find {path} {name -of-file or dir-to-search} {action-to-take}

Kde:

V tomto tutoriálu se budeme vysvětlovat, jak najít soubory a adresáře odpovídající zadané vzory. Uvidíme také, jak provádět akce v souborech nebo adresářích, které vyhledá příkaz find. Průvodce je založen na Ubuntu, ale je použitelný pro většinu linuxových distribucí a verzí.

Najít soubory a Adresáře

Najít konkrétní soubory podle názvu nebo rozšíření

hledat pro konkrétní soubor, spusťte následující příkaz z kořene (/)., Příkaz obsahuje přesný název souboru, který hledáte.

find . -name file22.txt

výstup

./test/file22.txt./sales/file22.txt

Vezměte prosím na vědomí, že výsledky obsahují cestu. To je důležité, pokud neznáte adresář, kde je soubor umístěn, nebo když je na více než jednom místě.

soubor můžete také vyhledat v jiném adresáři, zatímco je stále v aktuálním umístění. V takovém případě musíte zadat cestu k adresáři, kde chcete hledat.,

find ./test -name file22.txt

Hledat konkrétní soubory do jiného adresáře

V našem případě, budeme hledat pro všechny ty začínající písmeny soubor v adresáři test.

find ./test -name file*

Výstupní

./test/file22.txt./test/file30.doc./test/file1.txt./test/file5,doc

Vyhledávání souborů podle rozšíření

Chcete-li najít soubor v Linuxu s určitou příponou, přidejte jej do příkazu.,

find . -name *.txt

Výstupní

./test/subtest/subfil.txt./test/file22.txt./test/file1.txt./home1/files32.txt./home2/file22.txt./qa/tags.txt

Najít soubory a adresáře podle názvu

Použijte příkaz níže se podívejte na soubory a adresáře, začínající písmeny qa. V našem počítači máme soubory qatree.txt a qa.txt a adresář pod názvem qa.,

Když jsme se spustit příkaz;

find ./ -name "qa*"

vrátí následující výstup

./test/qatree.pdf./test/qa.txt./home/qa

příkaz vrátí oba soubory a adresáře odpovídající kritéria vyhledávání. Chcete-li najít pouze soubory nebo adresáře, musíte to zadat v příkazu.

Najděte pouze soubory nebo adresáře

pouze pro soubory použijte přepínač type f.

Soubory

find ./ -type f -name "qa*"

Výstupní

./test/qatree.pdf./test/qa.txt

Adresáře

Přidat type d možnost najít jen adresáře.,

find ./ -type d -name "qa*"

Output

./home/qa

Case insensitive find command

Všechna vyhledávání pomocí-name switch jsou malá a malá písmena. Chcete-li získat všechny případy, použijte volbu -iname.

find ./ -iname "qa*"

Výstupní

./test/qatree.pdf./test/qa.txt./test/QAtest.txt./home/qa

Vyhledat soubor z více adresářů

najít soubory v různých adresářích, přidejte se jejich cesty v příkazu., V našem případě zkontrolujeme adresáře test a .

find ./test ./numeric -name file22.txt -type f

Výstupní

./test/file22.txt/root/numeric/file22.txt

Najít více souborů s různými příponami ze všech adresářů

můžete použít najít příkaz najít více souborů, které sdílejí různá rozšíření, jako například *.doc, *.txt *.pdf, atd. To lze provést samostatně, jedno rozšíření najednou nebo pomocí jediného příkazu, který obsahuje všechna požadovaná rozšíření.,

find . -type f ( -name "*.txt" -o -name "*.pdf" -o -name "*.doc" )

výstupní

Najít soubory obsahující určitý text

Někdy chcete přístup k souboru obsahující určitý text, ale nevybavuji jeho název souboru nebo umístění. Tento příkaz vám umožní najít všechny soubory obsahující cílový text.

hledat pro všechny soubory obsahující slovo hyperconvergence“, použití;

find / -type f -exec grep -l -i "hyperconvergence" {} ;

Výstupní

/root/numeric/hci/root/HCIP

–jsem možnost umožňuje příkaz ignorovat případech a bude najít text, zda vydělával nebo ne, tj. hyperconvergence, Hyperconvergence , atd.,

podívejte se na soubory v určitém adresáři, jednoduše ji přidat do příkazu

find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;

Výstupní

./numeric/hci

Najít Soubory a Adresáře na Základě Velikosti

můžete najít všechny soubory nebo adresáře, které jsou menší, roven nebo větší než určité velikosti, v určitém rozsahu nebo prázdný. Použijte vhodný formát velikosti V závislosti na typu souborů nebo adresářů, které hledáte.,najít soubory určité velikosti – rovná 30MB

Do Hledání najít všechny 30MB souborů

find / -size 30M

Najít soubory větší než zadaná velikost

find -size +2M

Výstupní

. /Downloads/ubuntu18043.iso ./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

Najít soubory menší než 10MB v aktuálním adresáři

find . -type f -size -10M

Hledat soubory, jejichž velikost je mezi 100-200MB

Při pohledu na soubory v určitém rozsahu, jako je mezi 100 a 200 MB.

find / -size +100M -size -200M

hledat adresáře větší než 20kb

find / -type d -size +20k

Najít prázdné soubory a adresáře.,

Soubory

find ./ -type f -size 0

nebo

find ./ -type f –empty

Adresáře

find ./ -type d –empty

Najít soubory podle věku nebo změna času

Najít soubory starší než n dní

find /path/ -type f -name '*.txt' -mtime +8

-mtime +8 bude vypadat. txt soubory, které jsou starší než 8 dní.,

datum změny

To bude hledat soubory, upravený v 17 hodin

find . -mtime -17 -type f 

Vypadá pro adresáře změněn během posledních 10 dní,

find . -mtime -10 -type d 

Najít soubory na základě přístupu nebo změna

Najít soubory na základě data nebo času přistupovat. To vám umožní vidět soubory, které mají nebo nebyly přístupné ve stanovené lhůtě.

Chcete-li zobrazit soubory, které nebyly přístupné během posledních 10 dnů v domovském adresáři.,

find /home -atime +10

Soubory přístupné přesně před 10 dny

find /home -atime 10

Přístupné během posledních 10 dní,

find /home -atime -10

Najít soubory, modifikované v posledních n dní

můžete se také podívat na soubory v /home adresář změněn během posledních 10 dnů pomocí příkazu;

find /home -mtime -10 

hledání souborů modifikovaných v rámci určitého období.

například všechny soubory modifikované Před 6 až 15 dny v domovském adresáři.,

find /home -type f -mtime +6 -mtime -15

Soubory a adresáře přístupné během posledních 10 minut

najít soubory přístupné během posledních 10 minut, použijte-amin možnost.

find . -amin -10 -type f

Výstupní

./.bash_history./.profileroot@ubuntu1804:~#

Adresáře přístupné během posledních 10 minut

find . -amin -10 -type d

Najít soubory odpovídající konkrétní oprávnění

Syntax

$ find -perm mode

Kde je režim povolení, který je buď číselné, například 644, 655, 700, 777, atd., nebo dopisy, například u=x, a=r+x, atd.,

režim můžete zadat následujícími třemi různými způsoby.

  1. bez předpony, pokud chcete najít soubory s přesnými zadanými oprávněními.
  2. s“- “ pro soubory s alespoň zadaným povolením. To vrací soubory se zadaným, stejně jako další vyšší oprávnění.
  3. použití „/ “ vyžaduje zadání vlastníka nebo skupiny se svolením k souboru.,

Najít soubory s povolením 777

find -perm 777

Výstupní

./file1

Vyhledejte soubory s alespoň 766
najít -perm -766

Výstupní

./file2./file1

příkaz vyhledá všechny soubory, ve kterých

  • soubor vlastník má číst/zapisovat/spouštět oprávnění.
  • skupina má oprávnění ke čtení / zápisu
  • ostatní mají oprávnění ke čtení/zápisu

jako takové, vrací dva soubory, které splňují toto kritérium-file1 a file2., Soubory nemusí mít přesná oprávnění 766 a mohou mít další, Pokud však musí mít alespoň zadané.

Hledat soubory pro zápis vlastníka

nyní použijeme „/“ vypadá pro soubory zapisovat buď jejich majitel, nebo skupiny, nebo ostatní.

find -perm /222../file2./file3./file1

výše uvedené hledá soubory, které jsou zapisovatelné buď jejich vlastníkem nebo skupinou.
to vrací soubory, které jsou zapisovatelné buď, ale ne nutně obojí. Chcete-li zobrazit soubory, kde oba mají zapisovatelná oprávnění, použijte předponu -.,

./file2./file1

Najít soubory ve vlastnictví uživatele

Najít všechny soubory vlastněné Jack

find /home -user jack

Výstupní

/home/jack/home/jack/examples.desktop/home/jack/.gnupg/home/jack/.gnupg/private-keys-v1.d/home/jack/ans.cgi

Najít konkrétní soubory ve vlastnictví uživatele

Najít všechny textové soubory ve vlastnictví Jack

find /home -user jack -iname "*.txt"

Výstupní

/home/jack/docs/file32.txt

Najít a seznam souborů a adresářů spolu s jejich oprávnění

find -name "*.conf" | ls -l

Výstupní

Najít a působit na výsledky

V této části, my se podíváme na to, jak se může jednat o soubory, které odpovídají vzoru zadaného v příkazu find.,

najděte soubory a změňte oprávnění

najděte a změňte oprávnění určitých typů souborů. V našem případě budeme pracovat se soubory PHP s různými oprávněními, jak je uvedeno níže.,

nyní Budeme hledat všechny PHP soubory (výše) a nahradit jejich oprávnění s 755,

find ver -name "*.php" -type f -exec chmod 755 {} ;

příkaz vyhledá PHP soubory v ver adresář a pak nastaví jejich svolení, aby 755 (rwxr-xr-x)

Výsledky

Najít a změnit soubor a adresář oprávnění

Vyhledejte soubory s 644 oprávnění a změnit je, aby 655 permissions

find . -type f -perm 644 -exec chmod 655 {} ;

můžete se také podívat na adresáře s 644 oprávnění a nahradit 755.,

find . -type d -perm 644

Výstupní

./docs 

složce docs má oprávnění 644

drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

nastavte 755, provozujeme

find . -type d -perm 644 -exec chmod 755 {} ;

Nyní se můžeme znovu zkontrolovat, aby viděli, co přesně 755

find . -type d -perm 755

Výstup
.
./ docs

shora vidíme, že adresáře root a docs mají oprávnění 755.,

Ls –la příkaz dává následující údaje

drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

Najít a zkopírovat soubory nebo adresáře

Najít a zkopírovat určitý soubor do adresáře

příkaz níže najdete file22.txt soubor a zkopírujte jej do ~/tmp/images adresář.,

find -iname file22.txt -exec cp {} ~/tmp/images ;

vyhledejte a zkopírujte jeden typ souborů do adresáře

najít soubory, jako jsou obrázky s jpg souboru v aktuálním adresáři a zkopírujte je do jiného umístění jako složky obrázky, používat;

find -iname '*.jpg' -exec cp {} ~/tmp/images ;

To najít a zkopírovat všechny jpg soubory ~/tmp/images složka.

Najděte a zkopírujte jeden soubor do mnoha adresářů

Najděte a zkopírujte jeden do více adresářů.,

find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;

Tento bude najít soubor hci soubor a zkopírujte jej do tří adresářů /tmp/dir1/ /tmp/dir2/ $HOME/3/

Najít a přesunout soubory do jiného adresáře

přesunout známý soubor z adresáře do jiného., Přesunout do universal.php soubor;

find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

Hledat a přesouvat soubory s určitou příponou do jiné složky,

find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

Najít určité soubory a přesunout na konkrétní jiné složky

find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

příkaz vyhledá všechny soubory s názvy začínající uni a některá rozšíření. To pak přesune do adresáře /unifiles/

Najít a přesunout soubory na základě věku

hledat a přesouvat soubory starší než zadané dny do jiného umístění, například na archiv.,

find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

toto bude hledat soubory pdf starší než 20 dní a přesunout je do adresáře backup1.,soubory a adresáře

syntaxe pro nalezení a odstranění souborů nebo adresářů v aktuálním adresáři, je,

find . -type f -name "file to delete" -exec rm -f {} ; odstranit soubory nebo pouze

find . -type d -name "dir-to-delete" -exec rm -rf {} ; smazat adresáře pouze

Najít a odstranit konkrétní soubory pouze

najít a odstranit soubory, počínaje s til, použití;

find . -type f -name "til*" -exec rm {} ; 

najít a odstranit adresářů počínaje, až

find . -type d -name "til*" -exec rm {} ;

Odstranit oba soubory a adresáře

find . -name "til*" -exec rm -rf {} ; 

odstraňte oba soubory a adresáře, začínající písmeny til.,

Odstranit rozšíření

Níže je, jak můžete najít a odstranit všechny txt soubory v aktuálním adresáři. Nahraďte txt jiným rozšířením, jako je bak, pdf nebo jiným, které chcete odstranit.

find . -type f -name "*.txt" -exec rm -f {} ;

v případě, že chcete, aby vás systém vyzval k potvrzení před odstraněním každého souboru, přidejte možnost-i níže.,

find . -type f -name "*.txt" -exec rm -i {} ;

Výstupní

ve výchozím nastavení -rm nebude odstranit adresáře a budete muset použít –r možnost zajišťuje rekurzivní odstranění. Tím je zajištěno odstranění prázdných adresářů a adresářů obsahujících soubory. Volba -f vynutí odstranění a používá se jak pro soubory, tak pro adresáře.

Najděte a odstraňte soubory starší než n dny

Najděte a odstraňte záložní soubory starší než 20 dní z aktuálního adresáře.,

find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

tím se odstraní všechny soubory .bak starší než 20 dní.

Najít a odstranit adresáře pouze

odstranit adresář s názvem dir22

find . -type d -name dir22 -exec rm -rf {} ;

ujistěte se, že jste zápas název adresáře případě, nebo použijte -iname možnost.

find . -type d -iname Dir22 -exec rm -rf {} ;

Odstraňuje Dir22 dir22

K potvrzení před odstraněním, použijte-jsem možnost.

find . -type d -iname Dir22 -exec rm -rf -i {} ;

výstup
rm: odebrat adresář ‚./ Dir22‘?, n
rm: odebrat adresář ‚./ dir22‘? y

V našem případě jsme zadali n do adresáře Dir22, které nebudou odstraněny, a y dir22, který bude nyní odstraněn.

Najděte a odeberte prázdné soubory

můžete použít některý z následujících příkazů k vyhledání prázdných souborů a jejich automatickému odstranění.

find ./ -type f -size 0 -exec rm -f {} ;

nebo
Najít .| – typ F-velikost 0 / xargs rm-f
nebo
Najít .,/ – Type F-size 0-delete

Najděte a odstraňte prázdné adresáře

pro odstranění prázdných adresářů použijeme volbu d.

find ./ -type d -empty -exec rmdir {} ;

další alternativou je použití delete namísto remove.

find ./ -type d -empty -delete

Upozorňujeme, že odstranění systému nebo kritických souborů z počítače může poškodit operační systém nebo aplikace nebo vést ke ztrátě důležitých dat.

Chcete-li se vyhnout náhodným smazáním, je nejlepší použít uživatelský účet, který není root., Také se ujistěte, že odstraňujete správné soubory, které nejsou užitečné a že máte zálohu všech datových souborů jen pro případ.

co bude dál?

pokračujte a vyzkoušejte výše uvedené příkazy Linux find ve vašem laboratorním nebo nevýrobním prostředí. Zjistěte, zda můžete některé použít k automatizaci vyčištění systému souborů pomocí Crontab. A chcete-li zvládnout Linux, podívejte se na tento online kurz.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Přejít k navigační liště