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]
Pokud při spuštění příkazu find narazíte na níže uvedenou chybu:
find: command not found
můžete zkusit nainstalovat níže uvedený balíček podle výběru vaší distribuce:
Distribuce | Příkaz |
---|---|
OS X | brew install findutils |
Debian | apt-get install findutils |
Ubuntu | apt-get install findutils |
Alpine | apk add findutils |
Arch Linux | pacman -S findutils |
Kali Linux | apt-get install findutils |
CentOS | yum install findutils |
Fedora | dnf install findutils |
Raspbian | apt-get install findutils |
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. Pro zobrazení 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