Linux FIND příkaz s příklady


Víte, kolik souborů je v nové instalaci Linuxu? Pokud používáte PopOS! Linux distribuce jako příklad existuje více než 31 000 souborů. To je předtím, než začnete vytvářet jakékoli dokumenty, ukládat hudbu, stahovat soubory PDF nebo organizovat obrázky.

Z tohoto důvodu se hledání správného souboru nebo složky v Linuxu, když to potřebujete, stává výzvou. V tomto článku se dozvíte, jak používat příkaz FIND pro Linux, a my vám poskytneme všechny možné příklady.

Linuxová syntaxe příkazu FIND

Syntaxe se týká toho, jak se slova nebo příkazy skládají dohromady. Stejně jako se normální věta může stát nesmyslem pouhým zamícháním slov, příkazy mohou selhat, pokud nejsou použity ve správné syntaxi.

najít [cesta] [podmínky] [akce]

Zde je to, co to znamená:

najít – spustí nástroj Najít v systému Linux

cesta – kde hledat

podmínky – argumenty, které chcete použít při vyhledávání

akce – co chcete dělat s výsledky

Jednoduchý příklad všech tří vypadá takto:

najít . -name file-sample.rtf -print

Jak jste uhodli, zde bude nalezen název souboru file-sample.rtf .

Cesta tečky (. ) říká, že hledání má hledat v aktuálním adresáři a všech adresářích v něm.

Podmínka -name říká, že hledání má získat soubor s tímto konkrétním názvem.

Akce -print říká FIND, aby se výsledky zobrazily na obrazovce.

Tečka a -print jsou výchozí hodnoty pro příkaz find. Takže to bude dělat to samé, pokud je nepoužíváte. Takže find -name file-sample.rtf vám poskytne stejné výsledky.

Linux NALEZNETE v jiném adresáři

Můžete hledat v jiném adresáři, než ve kterém se nacházíte. Stačí zadat cestu k adresáři za FIND. Pokud jste v kořenovém adresáři a víte, že soubor je někde v adresáři home/user , použili byste:

najít domov/uživatelské jméno file-sample.rtf

Je to stále rekurzivní vyhledávání, takže projde každý adresář pod uživatelem ..

Linux FIND Hledat více adresářů

Pokud chcete hledat v několika adresářích najednou, stačí je uvést v příkazu oddělené mezerou.

najít /lib /var /bin -name file-sample.rtf

Linux FIND bez rekurze nebo omezení rekurze

Pokud byste použili výše uvedený příkaz FIND na kořenové úrovni, prohledal by všechny adresáře v systému. Pokud se tedy chcete držet pouze aktuálního adresáře, použijte volbu -maxdepth . Číslo za -maxdepth říká Najít, jak hluboko jít, než se zastavíte.

Použití -maxdepth 1 znamená pouze tento adresář.

find -name file-sample.rtf -maxdepth 1

Použití -maxdepth 2 nebo vyššího čísla znamená jít o mnoho úrovní hlouběji.

find -maxdepth 5 -name file-sample.rtf

Příklad zástupného znaku FIND pro Linux

Příkaz FIND používá hvězdičku (* ) jako zástupný znak. Použijte jej pro jakoukoli část jména, kterou si nejste jisti. V názvu lze použít více než jednou. Bez typu souboru jako součásti názvu souboru budou výsledky zahrnovat také adresáře, které se shodují.

najít soubor domovského/uživatelského jména*ukázka*

Linux FIND podle příkladu typu

Chcete-li hledat pouze soubor nebo adresář, použijte volbu -type a příslušný deskriptor. Je jich několik, ale nejběžnější jsou soubory a adresáře:

f – soubor

d – adresář

b – blokovat zařízení

c – znakové zařízení

l – symbolický odkaz

s – zásuvka

najít domov/uživatelské -jméno soubor*ukázka* -typ d

Linux FIND příklad nerozlišující malá a velká písmena

Na rozdíl od Windows se Linux stará o to, zda je písmeno velké nebo malé. Pokud tedy chcete, aby vyhledával soubor File-Sample.rtf i soubor-sample.rtf, použijte volbu -iname .

najít domov/uživatele -jméno File-Sample.rtf

Příklad Linux NAJÍT několik souborů

Řekněme, že chcete najít verze souboru .rtf a .html. To lze provést jedním příkazem pomocí operátoru -o (nebo). V některých distribucích možná budete muset umístit názvy do hranatých závorek, například ( -name file-sample.rtf -o -name file-sample.html ) ..

najít domov/uživatele -jméno soubor-ukázka.rtf -o -název-ukázka.html

Linux NALEZNETE soubory, které se neshodují s názvem

Možná víte, že existuje verze souboru .html, ale ne, pokud existují i ​​jiné. Verzi .html můžete z vyhledávání odfiltrovat pomocí možnosti -ne .

najít domov/uživatele -jméno-soubor-sample* -not -name *.html

Linux FIND bez chybových výsledků

V příkladu hledání bez rekurze si všimněte, že uvádí všechny adresáře, ve kterých nebylo možné vyhledávat, a správný výsledek. To je otravné. Zabraňme tomu, aby zobrazoval všechny ty adresáře „Povolení odepřeno“. Zkombinujte jej s dalším Příkaz terminálu Linux, grep. Můžete také použít Najít s grep až najít soubory s konkrétními slovy.

find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Povolení odepřeno”

Pojďme si rozebrat 2>&1 .

2 – představuje stderr, což je zkratka pro výstup standardních chyb.

1 – představuje stdout, což je zkratka pro standardní výstup

> – znamená přesměrovat jakýkoli výstup nalevo od něj na cokoli napravo od něj.

& – znamená dát dohromady.

Takže 2>&1 znamená vzít standardní chyby a přesměrovat je a poté je spojit se standardním výstupem do jednoho výstupu.

Nyní se podíváme na | grep -v “Oprávnění odepřeno” .

| (tzv. roura) – říká Linuxu, aby předával výsledky toho, co je nalevo od něj, tomu, co je napravo. Přidává se do příkazu grep.

grep – je nástroj pro textové vyhledávání.

-v – říká grepu, aby hledal cokoli, co neodpovídá textu nalevo od -v. V tomto případě říká grepu, aby našel pouze cokoli, co neobsahuje text nebo řetězec, „Povolení odepřeno“. Takže grep vám zobrazí pouze výsledky, které hledáte, a všechny chyby, které neodpovídají „Oprávnění odepřeno.“

Linux FIND podle příkladu oprávnění

.

Abyste to mohli dobře používat, potřebujete naučit se oprávnění Linuxu.

Všechny ukázkové soubory mají oprávnění 664, kromě jednoho s oprávněním 775. K nalezení použijte možnost -perm .

najít dokumenty/ -název souboru-ukázka* -typ f -perm 775

Linux FIND podle velikosti příkladu

Vyhledání souborů podle velikosti je užitečné, když tyto obrovské soubory zaplní váš pevný disk. Použijte volbu -size, požadovanou velikost a jednu z následujících přípon. Pokud není použita žádná přípona, -size je výchozí b . Chcete-li najít soubory stejné a větší než určitá velikost, vložte před velikost znaménko plus (+).

M – Megabajty

G – gigabajty

k – kilobajty

b – bloky (512 bajtů – výchozí)

c – bajtů

w – slova (dva bajty dohromady)

najít -velikost +500 000

Linux FIND podle vlastníka

Existují dva způsoby, jak najít soubory podle vlastníka. Jeden je podle uživatelského jména vlastníka a druhý podle uživatelské skupiny. Chcete-li vyhledat podle uživatelského jména, použijte možnost -user a poté uživatelské jméno. Chcete-li vyhledat podle skupiny uživatelů, použijte -group a za ním název skupiny..

find -user groupname nebo find -user username

Linux FIND Files by Last Modified Example

Chcete-li najít soubory, které byly změněny nebo upraveny za posledních X dní, použijte -mtime následovaný číslem. Pokud před číslo vložíte znaménko minus ( ), zjistíte, že se cokoli změnilo během tolika dnů před tímto číslem. Znaménko plus (+ ) znamená, že do tolika dní předtím.

find -name “file-sample*” -mtime +5 (před více než 5 dny)

najít -name “file-sample*” -mtime -5 (před méně než 5 dny)

Chcete-li najít podle poslední úpravy v minutách, použijte volbu -mmin následovanou počtem minut. Použijte + a – jako výše.

find -name “file-sample*” -mmin -5

najít -name “file-sample*” -mmin +5

Linux FIND Files by Last Accessed TIME příklad

.

Možnost použitá k vyhledání souborů podle toho, kdy byly naposledy otevřeny, je -atime pro dny a -amin pro minuty. Za ním uveďte počet dní nebo minut pro návrat zpět a použijte znaménka + a – jako větší než a menší než.

najít -name “file-sample*” -atime -5

najít -name “file-sample* -amin -5

Kombinace funkce FIND s dalšími příkazy systému Linux

Výše je uveden jeden příklad použití find s příkazem grep a můžete jej použít s mnoha dalšími. Můžete vidět, že použití příkazů find a dalších může být velmi výkonné a může ušetřit spoustu času. Představte si, že byste museli smazat spoustu souborů určitého typu. Místo hledání v průzkumníku souborů stačí vytvořit správný příkaz a je hotovo během několika sekund. Jak nyní použijete příkaz find?

.

Související příspěvky:


18.01.2022