Příkaz find vám umožňuje hledat v určitém umístění soubory a adresáře, které splňují některá kritéria vyhledávání. Rekurzivně prohledává strukturu adresářů, včetně všech podadresářů a jejich obsahu, počínaje místem vyhledávání, které zadáte. S nalezenými soubory můžete provést jednu nebo více akcí.
Volba -type vám umožňuje určit typ objektu, který hledáte, například d pro adresář nebo f pro soubor. Volba -name je místo, kde zadáte název objektu, který hledáte. Následující příklad hledá v domovském adresáři uživatele (a ve všech podadresářích) všechny soubory s názvem 2021_report:
$ find /home/user -type f -name 2021_report
Syntaxe
Syntaxe příkazu find je:
$ find [options] {search locations} {search criteria} [actions]
najít VS. vyhledejte Příkazy
Příkaz locate prohledá databázi a načte informace o souborech přítomných ve vašem systému. Neschopnost udržovat tuto databázi aktualizovanou však může vést k zastaralým výsledkům. Příkaz find na druhé straně provádí živé prohledávání systému souborů a může se soustředit na konkrétní místo. Příkazu find může dokončení hledání trvat déle než příkazu locate.
Možnosti pro nalezené soubory
Když systém najde výpis, který splňuje vaše kritéria, existuje několik akcí, které můžete s výsledky provést. Některé z těchto možností jsou uvedeny v následující tabulce.
Možnost | Použito na |
---|---|
-tisk | Zobrazuje umístění nalezených souborů. |
-exec | Provede následující příkaz. |
-ok | Interaktivně provede následující příkaz. |
-delete | Smaže nalezené soubory. |
-fprint | Uloží výsledky do cílového souboru. |
najděte příklady příkazů
1. Chcete-li najít soubor s názvem v zadaném adresáři:
# find / -name file.txt # find . -name file.txt (within current directory)
2. Chcete-li najít soubor zadaných oprávnění:
# find / -perm 775 # find / -perm a+x # find . -perm 775(within current directory)
3. Chcete-li mít nastaven alespoň jeden bit zápisu (specifické oprávnění):
# find / -perm /a+w # find . -perm /a+w (within current directory)
4. Chcete-li najít soubor, který nemá nastaven žádný spustitelný bit:
# find / ! -perm /111 # find / ! -perm /a+x # find . ! -perm /a+x (within current directory)
5. Chcete-li vyhledat celosvětově čitelný soubor, alespoň jeden bit pro zápis, který nesmí nikdo spustit:
# find . -perm -a+r -perm /a+w ! -perm /a+x
6. Chcete-li se vyhnout následování symbolických odkazů:
# find -p / -name file
7. Chcete-li sledovat symbolické odkazy:
# find -p / -name file
8. Nenásledovat symbolické odkazy, s výjimkou zpracování argumentů příkazového řádku:
# find -H / -name file
9. Chcete-li najít soubor se zadanou hloubkou v adresářové struktuře:
# find -d 2 / -name file
10. Chcete-li určit úroveň sestupu:
# find -maxdepth 2 / -name file
11. Chcete-li určit minimální úroveň hloubky:
# find -mindepth 4 / -name file
12. Chcete-li zpracovat obsah každého adresáře před samotným adresářem:
# find -depth / -name file
13. Chcete-li zadat počáteční den pro časová razítka souboru:
# find -daystart -atime file
14. Aby se zobrazilo, nebude vydána žádná chybová zpráva (pokud je soubor během zpracování smazán):
# find -ignore_readdir_race / -name file
15. Vypnutí -ignore_readdir_race:
# find -noignore_readdir_race / -name file
16. Chcete-li nezahrnout adresáře z jiných přípojných bodů:
# find -mount / -name file
17. To Změní srozumitelnou syntaxi regulárního výrazu:
# find -regextype type
18. Zapnutí nebo vypnutí varovných zpráv:
# find -warn / -name file # find -nowarn / -name file
19. Nesestupujte adresáře na souborových systémech autofs:
# find -xautofs / -name file
20. Nesestupujte adresáře na jiných souborových systémech:
# find -xdev / -name