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?
.