Příkaz Najít je jedním z nejužitečnějších a nejdůležitějších příkazů používaných v Linuxu. Je k dispozici a nainstalován ve výchozím nastavení na téměř všech verzích Linuxu. Vše na Linuxu je ve formě souborů a v případě potřeby bychom měli být schopni soubor najít.
Pomocí příkazu find můžeme vyhledávat soubory, které jsou potřeba, na základě řady kritérií vyhledávání, můžeme použít jedno nebo kombinovat několik kritérií a pak můžeme provádět akce se získaným výsledkem. V tomto tutoriálu probereme příkaz find pomocí několika příkladů,
1) Zobrazí seznam všech souborů v aktuálním adresáři a jeho podadresářích
Chcete-li zobrazit seznam všech souborů v aktuálním adresáři a podadresářích, můžeme použít
$ find
Případně můžeme také použít ‚najít . “, což také poskytne stejný výsledek jako výše.
2) Najděte všechny soubory nebo adresáře vašeho současného pracovního adresáře
Chcete-li hledat pouze adresáře, můžeme použít
$ find . -type d
Chcete-li prohledat pouze všechny soubory, nikoli adresáře, použijte
$ find . -type f
3) Zobrazí seznam všech souborů konkrétního adresáře
K vyhledání všech souborů v určitém adresáři můžeme použít
$ find /root
Tento příkaz vyhledá všechny soubory v adresáři /root.
4) Najděte soubor s názvem v adresáři
Chcete-li vyhledat soubor podle názvu v určitém adresáři, příkaz je
$ find /root -name "linuxtechi.txt"
Toto vyhledá soubor linuxtechi.txt ve složce /root. Můžeme také vyhledat všechny soubory s příponou .txt,
$ find /root -name "*.txt"
5) Najděte soubor ve více adresářích
Chcete-li najít soubor podle názvu ve více adresářích, můžeme použít
$ find /root /etc -name "linuxtechi.txt"
Pomocí tohoto příkazu můžeme vyhledat soubor linuxtechi.txt v adresářích /root &/etc.
6) Najděte soubor s názvem bez ohledu na velká a malá písmena
Chcete-li vyhledat soubor s jeho názvem bez ohledu na velikost písmen, tj. zda se jedná o velká nebo malá písmena, můžeme použít „-jméno ‘ možnost v příkazu find
$ find /root -iname "Linuxtechi.txt"
Výsledek příkazu poskytne všechny soubory, které se jmenují linuxtechi.txt, ať už se jedná o malá nebo velká písmena nebo smíšená písmena.
7) Najděte všechny typy souborů jiné než uvedený typ
Předpokládejme, že chceme najít všechny soubory, které nejsou uvedeného typu, abychom toho dosáhli,
$ find /root -not -name "*.txt"
8) Najděte soubory s více podmínkami
Pro prohledávání souborů můžeme také kombinovat více než jednu podmínku. Předpokládejme, že chceme prohledávat soubory s příponami „.txt“ a „.html“.
$ find . -regex ".*\.\(txt\|html\)$"
9) Najděte soubory pomocí podmínky NEBO
Můžeme také kombinovat více vyhledávacích kritérií a pak hledat soubory na základě splnění jedné z podmínek pomocí operátoru OR,
$ find -name "*.txt" -o -name "linuxtechi*"
10) Najděte všechny soubory podle jejich oprávnění
Chcete-li vyhledat soubory na základě oprávnění, použijte -perm možnost v příkazu find
$ find /root -type f -perm 0777
11) Najděte všechny skryté soubory
Chcete-li vyhledat všechny skryté soubory v adresáři, příkaz je
$ find ~ -type f name ".*"
12) Najděte všechny soubory s SGID
K vyhledání všech souborů s bity SGID můžeme použít
$ find . -perm /g=s
13) Najděte všechny soubory s SUID
K vyhledání všech souborů s bity SUID použijeme
$ find . -perm /u=s
14) Najděte všechny spustitelné soubory
Chcete-li vyhledat pouze soubory, které jsou spustitelné, příkaz je
$ find . -perm /a=x
15) Najděte všechny soubory pouze pro čtení
Můžeme také hledat soubory pouze pro čtení pomocí příkazu find,
$ find /root -perm /u=r
16) Najděte všechny soubory vlastněné uživatelem
K vyhledání všech souborů, které vlastní konkrétní uživatel, například linuxtechi, použijeme následující příkaz,
$ find . -user linuxtechi
17) Najděte všechny soubory vlastněné skupinou
Chcete-li vyhledat všechny soubory, které vlastní určitá skupina, použijte
$ find . -group apache
18) Najděte soubory konkrétní velikosti
Pokud chceme vyhledat soubor, u kterého známe přesnou velikost, můžeme použít ‘-size ‘ možnost s příkazem find k vyhledání souboru
$ find / -size -2M
19) Najděte všechny soubory rozsahu velikostí
Pokud hledáme soubor, u kterého neznáme skutečnou velikost, ale známe rozsah velikostí, nebo jen chceme najít všechny soubory v rozsahu velikostí, můžeme soubor také najít pomocí těchto kritérií
$ find / -size +2M -size -5M
Můžeme také použít příkaz find k vyhledání všech souborů, jejichž velikost je větší než 50 MB
$ find / -size +50M
20) Najděte soubory, které byly upraveny před N dny
Například chceme najít všechny soubory, které byly upraveny před 8 dny. Můžeme toho dosáhnout pomocí ‘-mtime ‘ možnost v příkazu find
$ find / -mtime 8
21) Najděte soubory, které byly otevřeny před N dny
Podobně jako ve výše uvedeném příkladu můžeme také vyhledat soubory, které byly zpřístupněny před 8 dny pomocí „-atime“,
$ find / -atime 8
22) Najděte všechny prázdné soubory nebo adresáře
K vyhledání všech prázdných souborů v systému použijeme příkaz beneath
$ find / -type f -empty
Podobně vyhledejte všechny prázdné adresáře
$ find ~/ -type d -empty
23) Najděte největší a nejmenší soubory
Chcete-li vypsat největší nebo nejmenší soubor, zkombinujeme ‘třídění ‘ příkaz s příkazem find &pokud chceme dále vypsat první tři z těchto největších souborů, zkombinujeme ‘head ‘ příkaz.
Chcete-li zobrazit seznam prvních tří souborů v aktuálním adresáři, příkaz je
$ find . -type f -exec ls -s {} \; | sort -n -r | head -3
Podobně můžeme najít nejmenší soubory v aktuálním adresáři,
$ find . -type f -exec ls -s {} \; | sort -n | head -3
24) Najděte všechny soubory s konkrétními oprávněními a změňte je na 644 (nebo jiná oprávnění)
Pomocí příkazu find můžeme také dosáhnout některých pokročilých funkcí. Můžeme například vypsat všechny soubory, které mají oprávnění 644, a poté tato oprávnění změnit na 777. Chcete-li to provést, spusťte
$ find / -type f -perm 644 -print -exec chmod 777 {} \;
25) Najděte všechny soubory odpovídající kritériím a odstraňte je
Můžeme být požádáni o vyhledání a odstranění souborů odpovídajících kritériím. Chcete-li to provést pomocí příkazu find, spusťte
$ find / -type f -name 'linuxtechi.*' -exec rm -f {} \;
Toto bylo několik jednoduchých příkladů demonstrujících funkčnost příkazu find a lze jej použít k jednoduššímu provádění zdlouhavého, opakovaného hledání/nacházení.
Přečtěte si také :16 užitečných příkladů příkazů „cp“ pro začátečníky v systému Linux