La commande find vous permet de rechercher dans un emplacement spécifique des fichiers et des répertoires qui respectent certains critères de recherche. Il effectue une recherche récursive dans la structure des répertoires, y compris les sous-répertoires et leur contenu, en commençant par l'emplacement de recherche que vous entrez. Vous pouvez effectuer une ou plusieurs actions sur les fichiers trouvés.
L'option -type vous permet de spécifier le type d'objet que vous recherchez, comme d pour répertoire ou f pour fichier. L'option -name est l'endroit où vous spécifiez le nom de l'objet que vous recherchez. L'exemple suivant recherche dans le répertoire personnel d'un utilisateur (et tous les sous-répertoires) tous les fichiers nommés 2021_report :
$ find /home/user -type f -name 2021_report
Syntaxe
La syntaxe de la commande find est :
$ find [options] {search locations} {search criteria} [actions]
Si vous rencontrez l'erreur ci-dessous lors de l'exécution de la commande find :
find: command not found
vous pouvez essayer d'installer le package ci-dessous selon le choix de votre distribution :
Répartition | Commande |
---|---|
OS X | brew install findutils |
Debian | apt-get install findutils |
Ubuntu | apt-get install findutils |
Alpin | apk ajouter findutils |
Arch Linux | pacman -S findutils |
Kali Linux | apt-get install findutils |
CentOS | yum installer findutils |
Fédora | dnf installer findutils |
Raspbian | apt-get install findutils |
trouver des exemples de commandes
1. Pour trouver le fichier avec le nom, dans le répertoire spécifié :
# find / -name file.txt # find . -name file.txt (within current directory)
2. Pour trouver le fichier des permissions spécifiées :
# find / -perm 775 # find / -perm a+x # find . -perm 775(within current directory)
3. Avoir au moins un bit d'écriture défini (autorisation spécifique) :
# find / -perm /a+w # find . -perm /a+w (within current directory)
4. Pour rechercher un fichier dont aucun bit exécutable n'est défini :
# find / ! -perm /111 # find / ! -perm /a+x # find . ! -perm /a+x (within current directory)
5. Pour rechercher un fichier lisible par tous, au moins un bit d'écriture et non exécutable par quiconque :
# find . -perm -a+r -perm /a+w ! -perm /a+x
6. Pour éviter de suivre les liens symboliques :
# find -p / -name file
7. Pour suivre les liens symboliques :
# find -p / -name file
8. Ne pas suivre les liens symboliques, sauf lors du traitement des arguments de la ligne de commande :
# find -H / -name file
9. Pour trouver le fichier avec la profondeur spécifiée dans la structure de répertoire :
# find -d 2 / -name file
10. Pour spécifier le niveau de descente :
# find -maxdepth 2 / -name file
11. Pour spécifier le niveau de profondeur minimum :
# find -mindepth 4 / -name file
12. Pour traiter le contenu de chaque répertoire avant le répertoire lui-même :
# find -depth / -name file
13. Pour donner le jour de début des horodatages du fichier :
# find -daystart -atime file
14. Pour montrer qu'aucun message d'erreur ne sera émis (si le fichier est supprimé pendant le traitement) :
# find -ignore_readdir_race / -name file
15. Pour désactiver -ignore_readdir_race :
# find -noignore_readdir_race / -name file
16. Pour ne pas inclure les répertoires d'autres points de montage :
# find -mount / -name file
17. Pour modifier la syntaxe de l'expression régulière comprise :
# find -regextype type
18. Pour activer ou désactiver les messages d'avertissement :
# find -warn / -name file # find -nowarn / -name file
19. Ne descendez pas les répertoires sur les systèmes de fichiers autofs :
# find -xautofs / -name file
20. Ne descendez pas les répertoires sur d'autres systèmes de fichiers :
# find -xdev / -name