Jedním z hlavních důvodů celosvětové popularity, které se dnes systémy Linux a BSD těší, jsou jejich výchozí nástroje a utility. Linux nabízí některé z nejlepších metod vyhledávání a přístupu k souborům přímo z příkazového řádku. Příkaz find v Linuxu je jednou z takových pomůcek, která uživatelům Linuxu umožňuje efektivně vyhledávat v systému konkrétní typy souborů. Je to nástroj příkazového řádku, který umožňuje výkonné vyhledávací funkce a může být přesvědčivým nástrojem v rukou zkušených uživatelů. Pokud chcete detailně ovládat příkaz find a urychlit své dovednosti v Linuxu, jste na správném místě.
Každodenní příklady příkazu Najít v systému Linux
Věříme, že nejlepší způsob, jak se naučit příkazy Linuxu, je vyzkoušet si je sami. Níže uvedené příkazy by měly fungovat dobře na všech distribucích Linuxu bez ohledu na vaše desktopové prostředí. Takže můžete rychle vyzkoušet nějaký příkaz find v Linuxu otevřením terminálu pomocí Ctrl + T a zkopírováním a vložením příkazů odtud. Pokuste se tyto příkazy co nejvíce využít při každodenní práci s počítačem, abyste je zvládli v krátkém čase.
Struktura příkazu Najít
Příkaz find v Linuxu má níže uvedenou strukturu.
najít [cesty] [výraz] [akce]
Zde cesty označují adresář, kde „nenajdete“ pro hledání zadaných souborů. Výraz vám umožní filtrovat vaše soubory na základě určitých kritérií, zatímco akce vám umožní provádět příkazy shellu na souborech. Výchozí akcí je tisk, která jednoduše vytiskne soubory odpovídající výrazu v libovolné cestě. Find zobrazuje soubory rekurzivně, což znamená, že nejprve projde každý adresář a poté podle toho vytiskne výsledky.
Základní příkazy Linux Find
Můžete použít některé základní příkazy find, abyste získali představu o tom, co funkce find dokáže. Tyto příkazy jsou docela jednoduché a nevyžadují žádné předchozí zkušenosti s jinými nástroji příkazového řádku.
1. Vypsat všechny soubory přítomné v aktuálním adresáři
$ najít
--Tím se vytisknou všechny soubory v aktuálním adresáři. Pokud aktuální adresář obsahuje další adresáře, zobrazí je také. Tento příkaz je ekvivalentní příkazu
$ find -print.
2. Seznam všech souborů přítomných v konkrétním adresáři
$ najít /složku
Tento příkaz vytiskne všechny soubory v adresáři /složka . Tento příkaz můžete použít k zobrazení seznamu všech souborů konkrétní cesty ve vašem systému Linux.
3. Vyhledat konkrétní soubor
$ find -name test.txt
Tento příkaz hledá soubor s názvem test.txt uvnitř vašeho aktuálního adresáře a ve všech ostatních podadresářích. Tento příkaz použijte, když hledáte konkrétní soubory.
4. Vyhledejte konkrétní soubor v adresáři
$ find /Docs -name test.txt
Tento příkaz vyhledá soubor s názvem test.txt ve složce /Docs . Při použití tohoto příkazu můžete použít jak absolutní cesty, tak relativní cesty.
5. Vyhledejte soubor ve více adresářích
$ najít /opt /usr /var -name foo.scala -type f
Linuxový příkaz find můžete použít při hledání souboru ve více adresářích současně. Jednoduše zadejte názvy adresářů jeden po druhém a při vyhledávání mezeru.
6. Vyhledejte případ ignorování souboru
$ find -name test.txt
Tento příkaz vyhledá soubor test.txt bez shody případu. Pokud tedy máte dva soubory s názvem test.txt a Test.txt , zobrazí oba soubory. Volba -iname to umožňuje příkazu find.
7. Vyhledejte složky v aktuálním adresáři
$ find -type d
Tento příkaz zobrazí seznam všech adresářů, které máte ve svém aktuálním pracovním adresáři. Můžete přidat možnost názvu pro výpis konkrétních adresářů.
8. Vyhledejte konkrétní složku v adresáři
$ najít uživatele /home -type d -name
Tento příkaz vyhledá složku s názvem users uvnitř /home adresář. Můžete přidat volbu -iname místo -name pro vyhledávání bez ohledu na velikost písmen.
9. Vyhledejte soubory PHP pomocí názvu
$ find -type f -name test.php
Tento příkaz vypíše soubor PHP s názvem test.php přítomný v aktuálním pracovním adresáři.
10. Vyhledat všechny soubory PHP
$ find -type f -name “*.php”
Tento příkaz find v Linuxu vytiskne každý soubor PHP, který máte ve svém aktuálním pracovním adresáři. Před typ můžete přidat volbu cesty pro výpis souborů PHP přítomných pouze v určitém adresáři.
11. Najít všechny symbolické odkazy
$ find /usr -type l
Výše uvedený příkaz vyhledá každý symbolický odkaz, který máte ve svém aktuálním adresáři, a podle toho je vytiskne.
12. Vyhledávání souborů s různými příponami
$ najít. -type f \( -name “*cache” -o -name “*xml” -o -name “*html” \)
Výše uvedený příkaz find hledá soubory s názvem cache s různými příponami. Další rozšíření můžete vyhledat přidáním volby name následované parametrem -o.
Najít soubory na základě oprávnění
Příkaz find umožňuje uživatelům Linuxu vyhledávat soubory na základě jejich stavu oprávnění. To se bude hodit, když má váš systém více uživatelů a potřebujete zajistit, aby nikdo nezískal neoprávněný přístup k vašim datům.
13. Najít soubory, které mají nastaveno 777 oprávnění
$ najít -typ f -trvalá 0777 -tisk
Tento příkaz zobrazí seznam všech souborů v aktuálním pracovním adresáři, které mají oprávnění nastaveno na 777. Toto jsou soubory, které může číst, zapisovat a spouštět každý uživatel.
14. Najít soubory bez oprávnění 777
$ najít / -typ f ! -trvalá 777
Tento příkaz find v Linuxu vyhledá pouze ty soubory, které mají jiná oprávnění než 777. Pro zúžení výsledků hledání můžete nahradit / jakýmkoli jiným umístěním.
15. Najít soubory SGID s oprávněními 644
$ najít / -perm 2644
Tento příkaz find vyhledá pouze soubory SGID, které mají stav oprávnění nastavený na 644. Soubory SGID umožňují dočasný přístup k souborům, které nevlastníte nebo k nim nemáte přístup.
16. Najděte všechny soubory Sticky Bit s 551 oprávněními
$ najít / -perm 1551
Soubory Sticky Bit jsou sada souborů nebo složek, které může přejmenovat nebo odstranit pouze uživatel, který je vytvořil, nebo uživatel root. Tento příkaz zobrazí všechny soubory Sticky Bit ve vašem systému s oprávněními 551.
17. Najít všechny soubory SUID
$ find / -perm /u=s
Soubory SUID umožňují dočasné vlastnictví skupiny souborů uživatelům jiným, než je vlastník skupiny souborů nebo uživatel root. Tento příkaz find zobrazí seznam všech souborů SUID, které máte na svém aktuálním počítači se systémem Linux.
18. Najít všechny soubory SGID
$ find / -perm /g=s
Soubory SGID jsou v mnoha ohledech podobné souborům SUID kromě toho, že když jsou spuštěny soubory s oprávněními SGID, spuštění proběhne, jako kdyby proces spouštěl původní vlastník. Tento příkaz find uvádí všechny jednotlivé soubory SGID bez ohledu na jejich stav oprávnění.
19. Najít soubory pouze pro čtení
$ find / -perm /u=r
Soubory pouze pro čtení zabraňují uživatelům Linuxu do nich zapisovat nebo je spouštět. Může je zapisovat nebo spouštět pouze vlastník souborů nebo uživatel root. Tento příkaz find zobrazí všechny soubory pouze pro čtení, které váš počítač aktuálně má.
20. Najít všechny spustitelné soubory
$ find / -perm /a=x
Spustitelné soubory jsou jednoduše soubory, které lze spustit, jako jsou binární soubory. Výše uvedený linuxový „příkaz najít“ vyhledá v systému každý takový soubor a podle toho je vypíše.
21. Najít všechny soubory s oprávněními 777 a chmod až 644
$ find / -type f -perm 0777 -print -exec chmod 644 {} \;
Výše uvedený příkaz find prohledá všechny soubory, ke kterým je přidruženo oprávnění 777, a změní jejich stav oprávnění na 644 pomocí příkazu chmod. Pouze vy můžete nyní číst nebo zapisovat do souborů s oprávněním 644.
22. Najít všechny adresáře s oprávněními 777 a chmod až 755
$ find / -type d -perm 777 -print -exec chmod 755 {} \;
Tento příkaz Linux find vyhledá každý adresář, který má oprávnění 777, a změní jeho stav oprávnění na 755. V podstatě to znamená, že povolí plná oprávnění pouze vlastníkovi a oprávnění ke čtení a spouštění pro ostatní uživatele.
Vyhledávání konkrétních souborů pomocí funkce Najít
Najít lze poměrně efektivně použít pro vyhledávání konkrétních souborů. Můžete použít find pro výběr souborů na základě určitých kritérií a provádět s nimi operace shellu, jako je mazání souborů.
23. Najděte soubor a odeberte jej
$ find -type f -name “test.txt” -exec rm -f {} \;
Tento příkaz Linux „najít“ se používá, když potřebujete odstranit soubor ze seznamu mnoha souborů. V tomto případě nejprve najde soubor s názvem test.txt v aktuálním adresáři a odstraní jej pomocí rm-f.
24. Najděte více souborů a odeberte je najednou
$ find -type f -name “*.mp3” -exec rm -f {} \;
Příkaz Najít je užitečný pro hledání velkých polí konkrétních typů souborů a jejich odstranění najednou. Výše uvedený příkaz vyhledá ve vašem systému .mp3 soubory a odstraní je bez výzvy. Můžete přidat interaktivní příznak -i s částí rm pro zobrazení výzvy pokaždé, když dojde k odstranění.
25. Najděte všechny prázdné soubory v systému
$ najít /tmp -type f -empty
Prázdné soubory mohou ve velmi krátké době zaplnit vaše systémové prostředky. Pomocí výše uvedeného příkazu zobrazíte seznam všech prázdných souborů pomocí příkazu find. Tyto soubory můžete smazat přidáním -exec rm -f {} \; stejně jako výše uvedený příkaz.
26. Najděte všechny prázdné složky v systému
$ najít /tmp -type d -empty
Tento příkaz zobrazí seznam všech prázdných složek umístěných uvnitř /tmp adresář. Můžete to použít k nalezení prázdných složek v jakémkoli jiném adresáři a můžete je také odstranit, pokud chcete, jako jste to udělali dříve.
27. Najděte všechny skryté složky v systému
$ find /home -type f -name ".*"
Skryté složky mají v systémech Linux obvykle předponu jedinou tečkou (.). Pomocí výše uvedeného příkazu vypište všechny skryté složky, které máte v adresáři /home.
Najít soubory podle uživatele
Příkaz Najít je také užitečný pro vyhledávání souborů na základě skupin uživatelů. Můžete vyhledávat konkrétní soubory pro určité skupiny uživatelů a upravovat oprávnění k souborům velmi rychle pomocí příkazů Linux find.
28. Najděte soubor, který patří uživateli
$ find / -uživatel root -name test.txt
Příkaz find v Linuxu můžete použít k vyhledání jednoho souboru vlastněného konkrétním uživatelem. Výše uvedený příkaz hledá soubor s názvem test.txt v / adresář, který patří do kořenového adresáře uživatele.
29. Najít všechny soubory, které patří uživateli
$ find /home -user username
Výše uvedený příkaz Linux hledá všechny soubory v adresáři /home, který patří uživateli „username“. Budete muset nahradit „username“ s vaším uživatelským jménem pro Linux pro nalezení všech souborů, které vám patří.
30. Najít všechny soubory, které patří do skupiny
$ najít /home -group programátor
Soubory Linuxu obvykle patří do některých skupin. Výše uvedený příkaz pro Linux vám umožňuje vyhledat všechny soubory, které patří do určité skupiny zvané „programátor“ a vytiskne je v terminálu. Nahraďte „programátor“ názvem skupiny, kterou chcete vyhledat.
31. Najít konkrétní soubory pro uživatele
$ find /home -user bob -iname “*.txt”
Pomocí příkazu find můžete vyhledat konkrétní soubory, které patří uživateli. Výše uvedený příkaz to provede a vypíše všechny soubory .txt, které patří uživateli bob. Nahraďte bob svým uživatelským jménem a .txt s jakýmikoli jinými typy souborů pro vyhledání souborů určitého typu, které vám patří.
Najít soubory podle času
Find také umožňuje systémovým administrátorům efektivně monitorovat jejich systém. Umožňuje vyhledávání souborů na základě času modifikace, času přístupu atd.
32. Najděte všechny soubory, které byly změněny za posledních 50 dní
$ find / -mtime 50
Příkaz find umožňuje uživatelům vyhledávat soubory, které byly v daném čase změněny. Výše uvedený příkaz vytiskne všechny soubory ve vašem systému, které byly upraveny před 50 dny.
33. Najít všechny soubory, ke kterým byl přístup za posledních 50 dní
$ find / -atime 50
Volba -atime zobrazuje soubory, ke kterým se přistupovalo v definovaném časovém rámci. Výše uvedený příkaz uvádí seznam všech souborů vašeho systému, které byly zpřístupněny před 50 dny.
34. Najít všechny soubory upravené za posledních 50–100 dní
$ najít / -mtime +50 –mtime -100
Příkaz find v Linuxu umožňuje uživatelům vyhledávat všechny soubory upravené v daném časovém rozmezí. K tomu se používá operátor + a – ve spojení s -mtime. Výše uvedený příkaz najde všechny vámi upravené soubory za posledních 50 až 100 dní.
35. Najít všechny soubory změněné za poslední 1 hodinu
$ najít / -cmin -60
Tento příkaz vyhledá a zobrazí seznam všech souborů, které byly změněny za poslední hodinu. Pro zúžení vyhledávání můžete nahradit / konkrétním adresářem. Změňte 60 na jakékoli jiné číslo, například 120, abyste našli soubory, které byly za tu dobu změněny (2 hodiny na 120).
36. Najít všechny soubory upravené za poslední 1 hodinu
$ najít / -mmin -60
Výše uvedený příkaz zobrazí všechny soubory, které byly změněny za poslední 1 hodinu. Chcete-li změnit časový rámec požadovaný vaším účelem, přepněte 60 na jakékoli jiné číslo.
37. Najít všechny soubory přístupné za poslední 1 hodinu
$ find / -amin -60
Tento příkaz zobrazí všechny soubory, ke kterým jste za poslední hodinu přistupovali. Stejně jako u dvou předchozích příkazů můžete změnit 60 pro požadovaný výsledek.
Najít soubory podle velikosti
Někdy budete muset hledat soubory na základě jejich velikosti. Find se v tomto ohledu také hodí. Můžete přidat různé možnosti pro přesnější vyhledávání souborů podle velikosti.
38. Najít soubory o velikosti 50 MB
$ najít / -velikost 50 M
Tento „příkaz najít“ v Linuxu vytiskne všechny soubory, které máte větší než 50 MB. Nahradit / s požadovaným adresářem a 50 milionů s jakoukoli jinou velikostí pro efektivnější zúžení výsledků vyhledávání.
39. Najít všechny soubory větší než 100 MB
$ najít / -velikost +100 milionů
Výše uvedený příkaz zobrazí seznam všech souborů, jejichž velikost překračuje 100 MB ve vašem / adresář. Chcete-li dosáhnout požadovaného výsledku, můžete změnit 100 milionů za jiné velikosti souborů.
40. Najít soubory od 50 MB do 100 MB
$ najít / -velikost +50M -velikost -100M
Někdy budete muset najít soubory v určeném rozsahu velikosti. Výše uvedený příkaz zobrazí všechny soubory o velikosti od 50 MB do 100 MB. Změňte volitelné parametry pro shodu s jakýmikoli konkrétními vyhledávacími kritérii.
41. Smazat všechny soubory větší než 500 MB
$ find /Filmy -velikost +500M -exec rm -rf {} \;
Příkaz find je užitečný pro vyhledávání souborů nad určitý limit a jejich okamžité mazání z terminálu. Předpokládejme, že se vám ve složce povalují nějaké staré filmy a chcete je najednou smazat. Výše uvedený příkaz vám přesně toto umožní. Nezapomeňte nahradit /Movies s názvem složky, kde jsou uloženy vaše soubory.
42. Najít největší soubory
$ najít. -type f -exec ls -s {} \; | seřadit -n -r | hlava -5
Výše uvedený příkaz find vytiskne 5 největších souborů, které máte ve svém aktuálním pracovním adresáři a v jeho podadresářích.
43. Najít nejmenší soubory
$ najít. -type f -exec ls -s {} \; | seřadit -n | hlava -5
K zobrazení nejmenších souborů můžete také použít příkaz find v Linuxu. Tento příkaz vytiskne 5 nejmenších souborů, které máte ve svém aktuálním adresáři.
Různé příkazy hledání
Příkaz find v Linuxu nabízí mnoho dalších možností, jako je hledání souborů na základě textu, který obsahují, vyhledávání a mazání souborů, hledání souborů podle vzorů a tak dále. Níže uvedené příkazy ve zkratce demonstrují některé z těchto schopností.
44. Najít a odstranit konkrétní soubory
$ find / -type f -name *.mp3 -velikost +10M -exec rm {} \;
Tento linuxový „příkaz hledání“ umožňuje uživatelům najít všechny soubory .mp3 v jejich systému, které zabírají více než 10 MB místa, a odstranit je. Soubor .mp3 můžete nahradit jakýmkoli jiným typem souboru a parametrem velikosti pro konkrétní typy souborů.
45. Najděte soubory, které se neshodují se vzorem
$ find /home -type f -not -name “*.html”
Výše uvedený příkaz find v Linuxu vyhledá všechny soubory v /home adresář, který nekončí na .html. Volba -not to umožňuje „najít“.
46. Najít soubory podle textu v souboru
$ najít. -type f -name “*.java” -exec grep -l StringBuffer {} \;
Pomocí grep můžete najít soubory na základě textu, který obsahují. Výše uvedený příkaz „find“ v Linuxu hledá .java soubory, které v sobě obsahují StringBuffer. Přidání parametru -i do grep způsobí, že toto vyhledávání bude ignorovat malá a velká písmena.
47. Najít a zkopírovat soubory
$ najít. -type f -name “*.mp3” -exec cp {} /home/MusicFiles \;
Najít lze použít k vyhledání určitých souborů a jejich zkopírování do nového umístění. Výše uvedený příkaz vyhledá všechny soubory .mp3 v aktuálním adresáři a zkopíruje je do složky /home/MusicFiles .
48. Najít a přesunout soubory
$ najít. -type f -name “*.jpg” -exec cp {} /home/Pictures \;
Najít lze také použít k efektivnímu přesouvání souborů. Výše uvedený příkaz prohledá každý soubor .jpg, který máte ve svém aktuálním adresáři, a přesune je do adresáře /home/Pictures .
49. Najít a tar soubory
$ najít. -type f -name “*.java” | xargs tar cvf myfile.tar
Najít můžete vyhledat některé konkrétní soubory a archivovat je do tarballů. Výše uvedený příkaz najde všechny soubory .java v aktuálním adresáři a zkomprimuje je do souboru tar s názvem myfile.tar .
50. Filtrování chybových zpráv
$ najít [cesty] [výraz] [akce] 2>/dev/null
Někdy se můžete setkat s chybami jako „Povolení odepřeno“ nebo něco jiného při zkoušení některých příkazů find. Tyto chyby můžete přesměrovat na /dev/null , jak je uvedeno výše.
Konec myšlenek
Příkaz find v Linuxu je jedním z nejužitečnějších nástrojů příkazového řádku, který můžete použít pro efektivní monitorování vašeho systému nebo časté zpracování souborů. Chytré implementace různých „příkazů hledání“ z vás během okamžiku udělají pokročilého uživatele Linuxu. Naši redaktoři se snažili ze všech sil nastínit nejužitečnější příkazy hledání pro vaše každodenní použití. Používejte tyto příkazy při každodenní práci s počítačem, abyste ze svého systému Linux získali co nejvíce výhod.