Utilisation des commandes find, locate, which et whereis pour rechercher des fichiers dans Linux

Bg1

Il existe plusieurs façons de trouver et de localiser des fichiers depuis le terminal sous Linux, et find, locate, which et whereis sont quelques-unes des commandes couramment utilisées à cet effet. Examinons ces quatre commandes de recherche, leurs similitudes et leurs différences.

1. find

L’approche simple pour rechercher des fichiers dans un répertoire spécifié est d’utiliser la commande find. Si le répertoire dans lequel effectuer la recherche n’est pas explicitement spécifié, la recherche sera effectuée dans le répertoire courant.

La capture d’écran suivante montre comment, dans le répertoire courant (.), une recherche est effectuée pour tous les noms de fichiers se terminant par l’extension .txt.

Compare Find

La recherche peut également être effectuée en fonction des horodatages, des permissions de fichier, de la taille de fichier, du type de fichier, du propriétaire de fichier, etc. Des expressions régulières peuvent être utilisées pour contrôler les paramètres de recherche. Des instructions plus détaillées sur la commande find peuvent être trouvées ici.

2. locate

Cette commande est une autre façon de trouver des fichiers par nom. La commande précédente recherche dans le répertoire spécifié et fournit ensuite les résultats à l’utilisateur. Cet outil effectue la recherche contre une base de données appelée “mlocate.db,” qui se trouve dans “/var/lib/mlocate/mlocate.db.” Cette base de données est mise à jour chaque matin par l’utilitaire cron.

La commande s’exécute plus rapidement que find car la recherche se fait contre une base de données existante qui a déjà établi la liste de tous les fichiers et répertoires sur le système.

locate suivi du nom de fichier affiche le nom de chemin absolu où ce fichier existe.

Supposons qu’un script a été créé dans le répertoire personnel.

Si nous essayons de localiser le script nouvellement créé et copié, nous n’obtiendrons aucune sortie.

locate myscript

Comme cron ne met à jour la base de données que le matin, tout fichier ajouté au système pendant la journée nécessite une mise à jour manuelle de la base de données. Cela peut être fait en utilisant la commande updatedb.

sudoupdatedb

Si nous essayons de “localiser” le script personnalisé, il sera capable de localiser le fichier.

3. which

Après avoir discuté des commandes pour rechercher des fichiers, passons à une commande qui peut aider à rechercher le chemin absolu des exécutables sur le système : which.

Un exécutable/script/binaire peut être présent à plusieurs emplacements dans le système. which recherche dans les répertoires spécifiés dans les variables d’environnement $PATH et $MANPATH l’existence de l’exécutable spécifié.

Sans aucun commutateur, which affiche le premier chemin absolu trouvé pour un exécutable.

Le commutateur -a affiche toutes les occurrences des chemins absolus trouvés pour l’exécutable spécifié.

Les chemins absolus pour plusieurs exécutables peuvent être trouvés en spécifiant les exécutables les uns après les autres.

4. whereis

whereis est une autre commande et est utilisée pour obtenir trois informations concernant un exécutable :

  • chemin absolu du binaire
  • chemin absolu où le code source de ce binaire existe sur le système
  • chemin absolu du manuel qui existe pour ce binaire

Pour “bzgrep,” le binaire existe dans “/bin,” et le manuel existe dans “/usr/share/man/man1.” Son code source n’existe pas sur le système.

whereis peut être instruit de rechercher uniquement le chemin absolu du binaire en utilisant le commutateur -b. La recherche peut être effectuée uniquement dans les répertoires listés après le commutateur -B. Les noms après -f spécifient tous les binaires pour lesquels les informations doivent être obtenues.

De même, la recherche peut être restreinte uniquement au code source ou uniquement aux manuels, en utilisant les commutateurs -s et -m. -S et -M suivis des noms de répertoire spécifient les répertoires à rechercher pour le code source et les manuels respectivement.

Le commutateur -l fournira une liste détaillée des chemins absolus de tous les répertoires utilisés par whereis pour effectuer la recherche.

Compare Which Listing

Conclusion

Il ne manque pas d’outils pour vous permettre de trouver et de localiser des fichiers dans le terminal. J’espère que vous avez maintenant une bonne idée des quatre outils de recherche utiles sur les systèmes Linux. Si vous avez besoin de plus de détails sur leur utilisation, vous pouvez consulter leurs pages de manuel pour une documentation détaillée.