Recherche de site Web

find sous Linux avec des exemples


Si vous avez besoin de rechercher un ou plusieurs fichiers ou répertoires particuliers, la commande find sous Linux est l’outil parfait pour ce travail. La commande find peut rechercher un fichier avec un nom spécifique, mais vous pouvez également rechercher des fichiers qui suivent certains modèles de nommage. Cela peut être élargi jusqu’à la recherche de fichiers en fonction de la taille du fichier, de l’extension de fichier ou de beaucoup d’autres options.

La commande find est très polyvalente et regorge de tonnes d’options. Il faut peut-être un peu de temps pour apprendre à l’utiliser, mais en fin de compte, c’est beaucoup plus utile que de rechercher des fichiers manuellement ou via l’interface graphique. Vous pouvez également demander à la commande find d’exécuter une autre commande sur tous les fichiers qui correspondent à certains critères de recherche. Que vous recherchiez un fichier dans votre répertoire actuel, dans l’un de ses sous-répertoires ou n’importe où sur l’ensemble de votre système, la commande find est à la hauteur de la tâche.

Dans ce tutoriel, vous allez apprendre à utiliser la commande find sous Linux à l’aide d’exemples. Suivez ci-dessous pour en savoir plus sur les différentes options que vous pouvez utiliser avec cette commande.

Dans ce tutoriel, vous allez apprendre :

  • Comment utiliser la commande find sous Linux

Options fréquemment utilisées

Il peut sembler que la commande find sous Linux a une syntaxe déroutante lorsque vous jetez un coup d’œil à un exemple de commande pour la première fois. En effet, il a beaucoup d’options et certaines d’entre elles peuvent devenir assez complexes. Mais ne vous inquiétez pas, nous sommes là pour décomposer toutes les parties délicates de la commande de recherche. Suivez-le pour apprendre comment fonctionne la commande et vous deviendrez un expert en un rien de temps.

find dans Linux Exemples de base

  1. Commençons par la syntaxe la plus simple possible, qui serait de rechercher un fichier par son nom dans notre répertoire de travail actuel. Pour ce faire, nous allons demander à find d’effectuer une recherche dans le répertoire . et de spécifier un nom de fichier avec l’option -name.

    find . -name "example.txt"
    

  2. Deux ou trois choses à noter ici : cette commande ne recherchera pas seulement notre répertoire de travail actuel, mais aussi tous ses sous-répertoires (même si la structure est très profonde). De plus, il correspondra à tous les fichiers OU répertoires qui portent le nom que nous avons spécifié.

  3. Ensuite, essayons de rechercher un type particulier de fichier dans un autre répertoire. Dans cet exemple, nous allons rechercher dans le répertoire /home (et ses sous-répertoires) tous les noms de fichiers se terminant par .png.

    find /home -name "*.avif"
    

  4. Vous pouvez utiliser l’option -type pour indiquer à find de rechercher uniquement des fichiers ou des répertoires. Si vous ne spécifiez pas cette option, la commande renverra des résultats pour les deux. Recherche de fichiers uniquement :

    find /home -type f -name "example"
    

    Recherchez uniquement les annuaires :

    find /home -type d -name "example"
    

  5. Utilisez l’option -iname à la place de -name pour rendre votre recherche insensible à la casse.

    find /home -type f -iname "example.txt"
    
  6. Si vous ne voulez pas que la commande find aille trop loin dans les sous-répertoires, vous pouvez spécifier une limite avec l’option -maxdepth. Par exemple, cette commande limitera find à une profondeur de deux sous-répertoires :

    find . -type f -maxdepth 2 -name "example.txt"
    
  7. Maintenant que vous commencez à comprendre le fonctionnement de la commande find et de ses options, combinons-en quelques nouvelles dans la commande suivante. L’exemple ci-dessous trouvera tous les fichiers .conf qui ont été modifiés au cours des sept derniers jours, qui appartiennent à l’utilisateur linuxconfig et qui existent dans le répertoire personnel de cet utilisateur.

    find /home/linuxconfig -type f -user linuxconfig -mtime -7 -name "*.conf"
    
  8. La commande find peut supprimer automatiquement les fichiers qu’elle trouve si vous spécifiez l’option -delete. Soyez très prudent avec cette option, et assurez-vous d’abord d’exécuter la commande find sans elle afin de savoir exactement ce qu’elle prévoit de supprimer.

    find . -type f -name "*.tmp" -delete
    

NOTE
Vous pouvez toujours utiliser la commande man pour en savoir plus sur la commande find et sa documentation officielle. Cliquez sur le lien précédent pour voir comment ouvrir les pages de manuel pour n’importe quelle commande sur un système Linux.

Utilisation avancée

L’utilisation la plus avancée de la commande find consiste à l’utiliser pour exécuter d’autres commandes sur des fichiers qui correspondent à certains critères de recherche. Une partie de la syntaxe est extrêmement déroutante pour les nouveaux arrivants. Même les utilisateurs chevronnés de Linux auront parfois besoin de se référer à ces exemples, car il est difficile de se rappeler exactement où un point-virgule ou un autre caractère inhabituel est censé aller à l’intérieur de la commande. Ne vous inquiétez pas, nous allons l’expliquer dans les exemples suivants et cela commencera à avoir du sens.

find dans Linux Advanced Exemples

  1. La fonctionnalité de la commande find peut être étendue avec l’option -exec. L’utilisation de cette option vous permet d’exécuter une commande sur chaque fichier qui trouve des trouvailles. Par exemple, modifions les autorisations de fichier à 750 pour chaque fichier trouvé :

    find . -type f -name "*.conf" -exec chmod 750 '{}' \; -print
    
  2. Dans la commande ci-dessus, '{}' est un espace réservé pour les fichiers qui se trouvent avec find. L’option -exec se termine par un point-virgule, qui doit être échappé, d’où le \ ;. L’option -print affichera tous les noms de fichiers et les chemins d’accès à votre terminal.

  3. Selon la commande que vous exécutez à l’intérieur des paramètres -exec, il est parfois plus efficace d’utiliser un signe plus à la place du point-virgule. Cela permettra à find d’exécuter la commande sur plusieurs fichiers simultanément. Cela s’oppose à l’exemple précédent, dans lequel les autorisations d’un seul fichier ont été modifiées à la fois.

    find . -type f -name "*.conf" -exec chmod 750 '{}' + -print
    
  4. Dans cet exemple particulier, vous verrez en effet une énorme augmentation de la vitesse. Mais en fonction de la commande que vous exécutez, vos résultats peuvent varier. Il est préférable de tester les deux méthodes.

Réflexions finales

Dans ce tutoriel, nous avons tout appris sur la commande find sous Linux. La commande find est extrêmement puissante pour rechercher des fichiers et des répertoires en raison du grand nombre d’options qui sont intégrées à la commande. Nous sommes en mesure de dire à la commande d’effectuer une recherche en fonction de critères très spécifiques, tels que le propriétaire d’un fichier et la date de sa dernière modification, ce qui nous permet d’affiner nos résultats de recherche.

Comme si cela ne suffisait pas, l’option -exec étend encore l’utilité de la commande. Et, croyez-le ou non, nous n’en sommes encore qu’à effleurer la surface. La commande find peut également être utilisée en conjonction avec xargs pour faire encore plus de choses. Cela vaut également la peine de consulter la page de manuel pour trouver, car il existe de nombreuses autres options de niche que nous n’avons pas couvertes ici.

Articles connexes: