La commande find de Linux est utilisée pour rechercher des fichiers et des répertoires dans des répertoires spécifiés en fonction de divers critères. Cette commande est l'un des utilitaires les plus puissants et les plus répandus sous Linux.
Le format de base de la commande find est le suivant :
find [path] [expression]
où :
chemin
est le chemin d'accès au répertoire dans lequel rechercher des fichiers (par défaut, find recherche dans le répertoire actuel et tous ses sous-répertoires) ;
expression
est une expression qui définit les critères de recherche des fichiers.
Voici quelques-uns des critères de recherche de fichiers les plus courants qui peuvent être utilisés dans une expression de la commande find :
-nom
: recherche de fichiers par leur nom. Par exemple :
find /home/user -name myfile.txt
-type
: recherche les fichiers d'un type spécifique (par exemple, f
pour les fichiers ordinaires ou d
pour les répertoires). Par exemple :
find /home/user -type f
-size
: recherche les fichiers en fonction de leur taille. Par exemple : -mtime : recherche les fichiers en fonction de leur taille :
find /home/user -size +10M
-mtime
: recherche les fichiers en fonction de l'heure de leur dernière modification. Par exemple : -user et -group
find /home/user -mtime -7
-user
and -group
: recherche les fichiers par propriétaire et par groupe. Par exemple : -user et -group : recherche les fichiers par propriétaire et par groupe :
find /home/user -user bob -group users
Vous pouvez utiliser les opérateurs logiques -and
, -or
et -not pour
combiner plusieurs critères de recherche en une seule expression.
Par exemple, la commande suivante permet de trouver tous les fichiers du répertoire /home/user
qui ont été modifiés au cours des sept derniers jours et dont la taille est supérieure à 10 mégaoctets :
find /home/user -type f -mtime -7 -size +10M
La commande find vous permet également d'effectuer diverses actions sur les fichiers trouvés à l'aide de l'option -exec
. Par exemple, vous pouvez supprimer tous les fichiers qui ont été modifiés il y a plus de 30 jours à l'aide de la commande suivante :
find /home/user -type f -mtime +30 -exec rm {} ;
Ici, l'option -exec
exécute la commande rm
pour chaque fichier trouvé et utilise {}
pour remplacer le nom de fichier dans la commande.
La commande find
est un outil puissant pour trouver des fichiers et des répertoires sous Linux, qui peut être utilisé pour effectuer diverses tâches de gestion.
La commande find
prend en charge de nombreuses autres options qui peuvent être utilisées pour trouver des fichiers avec plus de précision :
-iname
: recherche des fichiers par leur nom sans tenir compte de la casse. Par exemple :
find /home/user -iname myfile.txt
-regex
: recherche les fichiers dont le nom correspond à une expression régulière donnée. Par exemple : -regex : recherche les fichiers dont le nom correspond à une expression régulière donnée :
find /home/user -regex ".*.txt$"
-maxdepth
et -mindepth
: limitent la profondeur de recherche des fichiers dans les sous-répertoires. Par exemple : -maxdepth et -mindepth
find /home/user -maxdepth 2 -type f
-prune
: exclut certains répertoires de la recherche. Par exemple : -prune : exclut certains répertoires de la recherche :
find /home/user -path /home/user/excluded -prune -o -type f -print
-print
: affiche la liste des fichiers trouvés sur la sortie standard. Par exemple : -print : affiche la liste des fichiers trouvés sur la sortie standard :
find /home/user -type f -print
find
permet également de rechercher des fichiers en fonction de divers attributs, tels que les autorisations, les attributs de fichier, les étiquettes SELinux
, etc. Vous trouverez plus d'informations sur ces options dans la documentation de la commande find
.
La commande peut rechercher des fichiers et des répertoires dans l'ensemble du système de fichiers, ce qui peut prendre beaucoup de temps et de ressources. Il est donc important d'être prudent lors de l'utilisation de cette commande et de s'assurer que les critères de recherche sont correctement définis afin d'éviter de trouver des fichiers inutiles ou des erreurs dans le système.