Commande find de Linux
Encyclopédie des commandes Linux
La commande find de Linux est utilisée pour rechercher des fichiers et des répertoires sous un répertoire spécifié.
Elle peut utiliser différentes options pour filtrer et limiter les résultats de recherche.
Syntaxe
find [路径] [匹配条件] [动作]
Description du paramètre :
CheminIl s'agit du chemin du répertoire à rechercher. Il peut s'agir d'un répertoire ou d'un nom de fichier, ou de plusieurs chemins, séparés par des espaces. Si aucun chemin n'est spécifié, la valeur par défaut est le répertoire courant.
expressionIl s'agit d'un paramètre facultatif utilisé pour spécifier la condition de recherche ; il peut s'agir d'un nom de fichier, d'un type de fichier, d'une taille de fichier, etc.
Il existe jusqu'à vingt ou trente options disponibles dans les conditions de correspondance. Les plus couramment utilisées sont répertoriées ci-dessous :
-name pattern: Rechercher par nom de fichier ; les jokers sont pris en charge.*et?。-type type: Recherche par type de fichier ; il peut êtref(fichiers réguliers),d(répertoires),l(liens symboliques), etc.-size [+-]size[cwbkMG]: Recherche par taille de fichier ; permet d'utiliser+ou-pour indiquer une valeur supérieure ou inférieure à la taille spécifiée ; l'unité peut êtrec(octets),w(mots),b(nombre de blocs),k(KB),M(MB), ouG(GB).-mtime days: Rechercher par date de modification ; il prend en charge l'utilisation de+ou-pour indiquer avant ou après le nombre de jours spécifié ; jours est un entier représentant le nombre de jours.-user username: Rechercher par propriétaire de fichier.-group groupname: Rechercher par groupe de fichier.
Actions :Facultatif ; utilisé pour effectuer des opérations sur les fichiers correspondants, telles que la suppression, la copie, etc.
Les paramètres liés au temps dans la commande find sont les suivants :
-
-amin n: Trouver les fichiers qui ont été accédés en moins de n minutes. -
-atime n: Trouver les fichiers qui ont été accédés en moins de n*24 heures. -
-cmin n: Trouver les fichiers dont le statut a changé en moins de n minutes (par exemple, les permissions). -
-ctime n: Trouver les fichiers dont le statut a changé en moins de n*24 heures (par exemple, les permissions). -
-mmin n: Trouver les fichiers qui ont été modifiés en moins de n minutes. -
-mtime n: Trouver les fichiers qui ont été modifiés en moins de n*24 heures.
Dans ces paramètres, n peut être un nombre positif, un nombre négatif ou zéro. Un nombre positif indique les fichiers modifiés ou accédés dans le délai spécifié, un nombre négatif indique les fichiers modifiés ou accédés avant le moment spécifié, et zéro indique les fichiers modifiés ou accédés au moment actuel.
Les nombres positifs doivent représenter avant le moment spécifié, et les nombres négatifs représentent dans le délai spécifié.
Par exemple :-mtime 0Indique la recherche de fichiers modifiés aujourd'hui,-mtime -7Indique la recherche de fichiers modifiés il y a plus d'une semaine.
Explication du paramètre de temps n :
+n: Rechercher des fichiers ou des répertoires plus anciens que n jours.
-
-n: Rechercher des fichiers ou des répertoires dont les attributs ont été modifiés dans un délai de n jours.
-
n: Rechercher des fichiers ou des répertoires dont les attributs ont été modifiés il y a n jours (le jour spécifié).
Exemples
Trouver le fichier nommé file.txt dans le répertoire courant :
find . -name file.txt
Lister tous les fichiers du répertoire courant et de ses sous-répertoires avec le suffixe.cet lister les fichiers :
# find . -name "*.c"
Lister tous les fichiers du répertoire courant et de ses sous-répertoires :
# find . -type f
Rechercher les fichiers de plus de 1MB dans le répertoire /home :
find /home -size +1M
Rechercher les fichiers dans le répertoire /var/log modifiés il y a 7 jours :
find /var/log -mtime +7
Trouver les fichiers accédés au cours des 7 derniers jours :
find /path/to/search -atime -7
Trouver les fichiers et répertoires dont le statut a changé au cours des 20 derniers jours dans le répertoire courant :
# find . -ctime 20
Lister tous les fichiers du répertoire courant et de ses sous-répertoires qui ont été mis à jour il y a 20 jours ou plus :
# find . -ctime +20
Trouver les fichiers réguliers dans le répertoire /var/log dont la date de modification remonte à plus de 7 jours, et demander confirmation avant de les supprimer :
# find /var/log -type f -mtime +7 -ok rm {} \;
Trouver les fichiers dans le répertoire courant où le propriétaire du fichier a les permissions de lecture et d'écriture, et où les utilisateurs du groupe et les autres utilisateurs ont la permission de lecture :
# find . -type f -perm 644 -exec ls -l {} \;
Trouver tous les fichiers réguliers de longueur 0 dans le système, et lister leurs chemins complets :
# find / -type f -size 0 -exec ls -l {} \;
Rechercher et effectuer des opérations (par ex., supprimer) :
find /path/to/search -name "pattern" -exec rm {} \;
Dans cet exemple,-execl'option permet d'exécuter une commande,{}sera remplacé par le nom du fichier correspondant,\;indique la fin de la commande.
Autres extensions