Recherche de site Web

Localiser vs trouver : quelle est la différence


Si vous avez besoin de rechercher un ou plusieurs fichiers particuliers, les systèmes Linux disposent de quelques méthodes puissantes pour les localiser, telles que les commandes find et localize. Ces deux commandes ont le même objectif, mais elles utilisent une méthodologie différente pour trouver des fichiers. Il est possible de 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 nombreuses autres options. Dans ce tutoriel, vous allez apprendre la différence entre les commandes find et localize, et des exemples d’utilisation de chacune d’elles. À la fin de notre tutoriel, vous saurez dans quelles situations une commande est plus appropriée qu’une autre.

Dans ce tutoriel, vous allez apprendre :

  • Quelle est la différence entre les commandes find et locate
  • Trouver et localiser les avantages et les inconvénients
  • Comment installer locate sur Linux
  • Comment utiliser les commandes de recherche et de localisation Linux avec des exemples

Localiser vs trouver : quelle est la différence ?

La commande find Linux est un élément de base sur toutes les distributions Linux et est toujours incluse par défaut. Il recherche des fichiers en fonction d’un grand nombre de paramètres, ce qui vous permet d’effectuer une recherche très granulaire. Vous pouvez trouver des fichiers en fonction de leur nom, de leur taille, de leur propriétaire, de leur date de modification et d’autres options.

find recherche des fichiers en temps réel, ce qui signifie qu’il explorera le répertoire spécifié pour votre requête de recherche lorsque vous l’exécuterez. Sur les systèmes de fichiers volumineux avec des sous-répertoires profonds, ces recherches peuvent prendre un certain temps, en particulier sur un ordinateur lent ou un disque dur de style ancien. Un disque SSD et une profondeur de répertoire plus faible donneront des résultats plus rapides.

find s’avère utile dans une multitude de situations, et peut même exécuter des commandes sur les fichiers qu’il renvoie dans ses résultats de recherche. Il accepte également la syntaxe regex et peut être dirigé vers xargs pour effectuer une manipulation de fichiers fluide et rapide à travers des tonnes de répertoires dispersés sur votre système de fichiers.

La commande locate n’est pas aussi connue que find et n’est souvent pas incluse comme commande par défaut sur les distributions Linux, bien qu’elle puisse facilement être installée via le gestionnaire de paquets. Il ne peut pas effectuer une recherche aussi granulaire, car il fait simplement correspondre les fichiers en fonction de leur nom, bien qu’il accepte une syntaxe compliquée telle que regex.

locate crée une base de données de fichiers sur votre système, ainsi que leurs emplacements, puis recherche une correspondance dans cette base de données, plutôt que d’analyser votre disque dur à la recherche de fichiers correspondants en temps réel. Cela permet à locate de produire des résultats très rapides, de sorte qu’il peut rechercher efficacement l’ensemble du système de fichiers pour un fichier correspondant en quelques secondes seulement.

Étant donné que locate utilise une base de données et que cette base de données n’est pas mise à jour en permanence, la commande ne peut pas trouver les fichiers récemment créés. L’utilisateur peut exécuter updatedb pour mettre à jour manuellement la base de données de localisation, ou attendre environ un jour pour que la base de données soit mise à jour automatiquement en arrière-plan.

Avantages et inconvénients

Dans la plupart des situations, il sera assez clair si la commande locate ou find sera un choix supérieur. Jetez un coup d’œil au tableau des avantages et des inconvénients ci-dessous pour obtenir des informations rapides sur l’outil le meilleur dans certaines catégories.

Catégorietrouverlocaliser
VitesseRapide pour les structures de répertoires peu profondes, mais peut être lente pour les plus profondesVitesse de l’éclair pour fouiller l’ensemble du disque dur
GranularitéAccepte de nombreux paramètres tels que le nom, la taille, le propriétaire, l’heure de modification, etc.Recherches uniquement basées sur le nom du fichier
SimplicitéSyntaxe plus compliquée et nécessite plus d’argumentsSyntaxe très simple, il suffit de spécifier le nom ou une partie du nom du fichier
ButIdéal pour les recherches granulaires qui nécessitent plusieurs paramètresIdéal pour trouver rapidement un fichier ou un répertoire en fonction du nom
Utilisation prolongéePeut supprimer des fichiers, exécuter des commandes sur des fichiers, diriger vers xargs, etc.Renvoie simplement l’emplacement d’un fichier ou d’un répertoire
DisponibilitéInstallé par défaut sur Linux, rien à téléchargerDoit généralement être installé via le gestionnaire de paquets système
UtilisabilitéRecherche dans n’importe quel répertoire et sous-répertoire spécifié en temps réelDoit enregistrer le fichier dans sa base de données afin de le rechercher

Installer locate sur Linux

Vous pouvez utiliser la commande appropriée ci-dessous pour installer locate avec le gestionnaire de paquets de votre système.

Pour installer sur Ubuntu, Debian et Linux Mint :


sudo apt install locate

Pour installer sur Fedora, CentOS, AlmaLinux et Red Hat :


sudo dnf install locate

Pour installer localisez sur Arch Linux et Manjaro :


sudo pacman -S locate

find et locate Exemples de commandes

Maintenant que vous comprenez la différence entre find et locate, il ne vous reste plus qu’à apprendre à utiliser les commandes. Consultez nos exemples ci-dessous pour vous faire une idée.

find Exemples de commandes

  1. Recherchez un fichier particulier dans votre répertoire de travail actuel et ses sous-répertoires :

    
    find . -name "example.txt"
    
  2. Retrouvez tous les fichiers image .png dans le répertoire /home et ses sous-répertoires :

    
    find /home -name "*.avif"
    
  3. Envisagez d’utiliser l’option de type -f avec find pour rechercher uniquement des fichiers (ignorer les répertoires), et l’option -iname pour rendre votre recherche insensible à la casse :

    
    find /home -type f -iname "example.txt"
    
  4. Trouvez 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"
    
  5. 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"
    
  6. 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
    
  7. 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
    

    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.

locate Exemples de commandes

  1. La syntaxe de la commande est très simple. Il vous suffit de spécifier le fichier ou le répertoire que vous souhaitez rechercher.

    
    locate example.txt
    
  2. Pour mettre à jour le cache de locate, vous pouvez exécuter :

    
    sudo updatedb
    

Réflexions finales

Dans ce tutoriel, vous avez découvert la différence entre les commandes find et locate sur un système Linux. Nous avons passé en revue les avantages et les inconvénients de chaque commande, ainsi que les exemples d’utilisation afin que vous sachiez exactement quand et comment utiliser les commandes dans un scénario donné. Ce qu’il faut retenir, c’est que la localisation est très rapide, mais qu’elle utilise une liste en cache pour fournir des résultats, tandis que la recherche fonctionne en temps réel et peut gérer une pléthore de paramètres de recherche.

Articles connexes: