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
findetlocate Trouveretlocaliserles avantages et les inconvénients- Comment installer
locatesur Linux - Comment utiliser les commandes
de rechercheetde localisationLinux 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égorie | trouver | localiser |
|---|---|---|
| Vitesse | Rapide pour les structures de répertoires peu profondes, mais peut être lente pour les plus profondes | Vitesse 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’arguments | Syntaxe très simple, il suffit de spécifier le nom ou une partie du nom du fichier |
| But | Idéal pour les recherches granulaires qui nécessitent plusieurs paramètres | Idéal pour trouver rapidement un fichier ou un répertoire en fonction du nom |
| Utilisation prolongée | Peut 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écharger | Doit 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éel | Doit 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
Recherchez un fichier particulier dans votre répertoire de travail actuel et ses sous-répertoires :
find . -name "example.txt"Retrouvez tous les fichiers image
.pngdans le répertoire/homeet ses sous-répertoires :find /home -name "*.avif"Envisagez d’utiliser l’option
de type -favecfindpour rechercher uniquement des fichiers (ignorer les répertoires), et l’option-inamepour rendre votre recherche insensible à la casse :find /home -type f -iname "example.txt"Trouvez tous les fichiers
.confqui ont été modifiés au cours des sept derniers jours, qui appartiennent à l’utilisateurlinuxconfiget qui existent dans le répertoire personnel de cet utilisateur :find /home/linuxconfig -type f -user linuxconfig -mtime -7 -name "*.conf"Si vous ne voulez pas que la commande
findaille trop loin dans les sous-répertoires, vous pouvez spécifier une limite avec l’option-maxdepth. Par exemple, cette commande limiterafindà une profondeur de deux sous-répertoires :find . -type f -maxdepth 2 -name "example.txt"La commande
findpeut 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" -deleteLa fonctionnalité de la commande
findpeut ê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 à750pour chaque fichier trouvé :find . -type f -name "*.conf" -exec chmod 750 '{}' \; -printDans la commande ci-dessus,
'{}'est un espace réservé pour les fichiers qui se trouvent avec find. L’option-execse termine par un point-virgule, qui doit être échappé, d’où le\ ;.L’option -printaffichera tous les noms de fichiers et les chemins d’accès à votre terminal.
locate Exemples de commandes
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.txtPour 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.
