V prostředí Linuxu je často nutné hledat určité typy souborů a my neznáme správný způsob, jak je správně prohledávat, aniž bychom zbytečně ztráceli čas.
Pro distribuce Linuxu byl vyvinut příkaz nazvaný find, který byl vyvinut k rekurzivnímu filtrování objektů v souborovém systému na základě podmíněného mechanismu. Pomocí tohoto příkazu find můžeme vyhledat soubor nebo adresář v jeho systému souborů.
Pokud zahrneme parametr -exec, soubory lze najít a zpracovat okamžitě v rámci stejného příkazu.
1. Hledejte soubory podle názvu nebo přípony příkazů Linuxu
K vyhledání konkrétního souboru podle názvu nebo přípony můžeme použít příkaz find z příkazového řádku.
Jeho syntaxe je:
find / home / username / -name "* .extension"Například budeme hledat soubory končící na .gz:
ZVĚTŠIT
2. Praktické příkazy a syntaxe k použití s příkazy find Linux
Pomocí příkazu find máme několik možností parametrů, jako například:
najít možnosti výraz start / cestaAtribut options bude řídit chování a způsob optimalizace procesu vyhledávání. Atribut home / path bude definovat adresář nejvyšší úrovně, kde find začne filtrovat.
Atribut výraz ovládá testy, které prohledávají hierarchii adresářů a vytvářejí výstup.
Můžeme například provést následující:
najít -O3 -L / var / www / -name "* .html"Tento příkaz umožňuje maximální úroveň optimalizace (-O3) a umožňuje sledovat symbolické odkazy (-L) a prohledávat celý strom adresářů na cestě / var / www / soubory končící na .html.
ZVĚTŠIT
3. Možnosti a optimalizace pomocí příkazů Find Linux
Výchozí konfigurace hledání pro hledání bude ignorovat symbolické odkazy (soubory zástupců), pokud chceme, aby následovaly a přijímaly symbolické odkazy, můžeme do příkazu přidat volbu -L, jak jsme viděli dříve. Find má tři (3) úrovně optimalizace, které jsou -O1, -O2 a -O3.
Optimalizace -O1 je výchozí a nutí vás hledat filtry podle názvu souboru před spuštěním všech ostatních testů.
Optimalizace na úrovni -O2 upřednostňuje filtry názvů souborů, jako v -O1, a poté spustí filtrování všech typů souborů, než bude pokračovat v dalších podmínkách náročnějších na zdroje. Optimalizace na úrovni -O3 umožňuje najít hlubší optimalizaci a změnit pořadí všech testů na základě jejich relativních výdajů a pravděpodobnosti lepších výsledků.
Některé z těchto možností jsou:
Je to filtr podle prvního názvu souboru
-O1 (výchozí)
Nejprve použijte název souboru a poté typ souboru
-O2
Změnit pořadí výsledkůUmožňuje vyhledávání automaticky změnit pořadí vyhledávání na základě efektivního využití zdrojů a pravděpodobnosti lepších výsledků.
-O3
Hledá aktuální adresář i všechny úrovně X podadresářů hluboko
-maximální hloubka X
Hledejte bez ohledu na velikost textu
-jméno
Vrátí pouze výsledky, které neodpovídají testovacímu případu
-ne
Proveďte vyhledávání souborů
-typ f
Hledat adresáře
-typ d
4. Najděte soubory podle časové úpravy příkazů Linuxu
Příkaz find má schopnost filtrovat hierarchii adresářů na základě poslední úpravy souboru.
Syntaxe jsou:
find / -name "* conf" -mtime 8 find / home / user / -name "* conf" -mtime 2První příkaz zobrazí seznam všech souborů v celém systému souborů, které končí znaky conf a byly upraveny za posledních 8 dní. Druhý příkaz filtruje domovský adresář uživatele pro soubory se jmény, které končí znaky conf a byly upraveny v předchozích 2 dnech.
Použijte Grep k vyhledání souborů založených na obsahu Příkazy LinuxPříkaz find může filtrovat hierarchii adresářů pouze podle názvu souboru a metadat, takže pokud potřebujete hledat podle obsahu souboru, použijte nástroj jako grep.
Použijeme následující syntaxi:
nalézt. -type f -exec grep "příklad" '{}' \; -vytisknoutTo vyhledá všechny objekty v aktuální hierarchii adresářů (.) Což je soubor (-type f) a poté spustí příkaz grep "příklad" pro každý soubor, který splňuje podmínky. Odpovídající soubory se vytisknou na obrazovku (-print). Rovnátka ({}) jsou zástupné symboly pro výsledky vyhledávání. {} Je uzavřeno v jednoduchých uvozovkách ('), aby se zabránilo vykreslování grep chybným názvem souboru. Příkaz -exec je ukončen středníkem "(;)", který musí být uvozen "(\;)", aby se zabránilo interpretaci shellem.
Jak hledat a zpracovávat soubory pomocí příkazu Najít Příkazy LinuxuPomocí volby -exec můžeme spouštět příkazy proti všem objektům, které odpovídají hledanému výrazu.
Jeho syntaxe je:
nalézt. -název "rc.conf" -exec chmod o + r '{}' \;Tím se vyfiltrují všechny objekty v aktuální hierarchii (.) U souborů s názvem rc.conf a spuštěním příkazu chmod nebo + r upravíte oprávnění výsledků hledání.
Find je tedy spojencem pro úplné vyhledávání souborů v Linuxu.