Comment utiliser la commande Locate Linux pour trouver n’importe quel fichier

Si vous utilisez Linux pour la première fois, vous ne savez peut-être pas comment rechercher des fichiers et des répertoires sur votre ordinateur. Il existe deux commandes Linux pour ce faire, à savoir find et locate

Bien que ces deux commandes aient la même fonction, elles fonctionnent différemment. La commande find recherche les fichiers spécifiés dans tous les répertoires de votre ordinateur. La commande locate, quant à elle, ne recherche les fichiers que dans votre base de données Linux.

Cet article explique comment utiliser les commandes Linux find et locate et pourquoi les utiliser.

Que sont les commandes Find et Locate dans Linux ?

La commande find de Linux est un outil polyvalent qui permet de rechercher des fichiers et des répertoires en fonction de divers critères, tels que le nom, le type et la taille, et dont les résultats sont générés en temps réel. La commande locate, quant à elle, est une option plus rapide qui s’appuie sur une base de données préconstruite pour effectuer des recherches rapides de fichiers, mais qui ne fournit pas nécessairement de mises à jour en temps réel.

Une chose importante à noter est que nous utiliserons le VPS Ubuntu dans ce guide. Ceci étant dit, les étapes devraient également fonctionner pour Debian, CentOS, ou toute autre distribution de Linux.

Syntaxe de la commande Find

La commande la plus populaire pour trouver et filtrer des fichiers sous Linux est find. La syntaxe de base est la suivante :

find <startingdirectory> <options> <search term>

Il commence par le mot-clé find, qui avertit Linux que tout ce qui suit sera utilisé pour trouver votre fichier. L’argument <startingdirectory> est le point de départ de la recherche. Il peut être remplacé par plusieurs arguments, notamment :

  • / (barre oblique) – recherche dans l’ensemble du système.
  • . (point) – recherche à partir du dossier dans lequel vous travaillez actuellement (répertoire actuel).
  • ~ (tilde) – pour effectuer une recherche à partir de votre dossier d’origine.

Conseil de pro

Pour connaître le répertoire dans lequel vous vous trouvez, utilisez la commande pwd.

Le deuxième argument <options> est dédié à votre fichier. Il peut s’agir du nom du fichier, de son type, de sa date de création, etc. Le troisième argument <search term> est l’endroit où vous indiquerez le terme de recherche pertinent.

Exemples de la commande Find

Jetons un coup d’œil aux différentes options que Linux offre à ses utilisateurs :

Utilisation de Find pour effectuer une recherche par nom

La méthode la plus courante pour rechercher un fichier est d’utiliser son nom. Pour lancer une recherche simple à partir du nom du fichier, utilisez la commande find comme suit :

find . -name my-file

Nous avons utilisé l’option -name et recherché un fichier appelé my-file. Notez que nous avons lancé la recherche dans notre répertoire actuel en utilisant l’argument . (point).

N’oubliez pas que l’argument -name recherche des termes sensibles à la casse sous Linux. Si vous connaissez le nom du fichier, mais que vous n’êtes pas sûr de sa sensibilité à la casse, utilisez la commande find suivante :

find . -iname my-file

Vous pouvez également rechercher tous les fichiers dont le nom ne contient pas un certain mot-clé. Il y a deux façons de procéder. La première consiste à utiliser le mot-clé -not de la manière suivante :

find . -not -name my-file

Deuxièmement, nous pouvons utiliser le symbole d’exclamation (!). Cependant, il doit être précédé de l’identifiant d’échappement (\) pour indiquer à Linux qu’il s’agit de la partie de la commande find.

find . \! -name my-file

Vous pouvez également rechercher plusieurs fichiers dans un format commun tel que .txt :

find . -name “*.txt”

Cette opération permet d’obtenir la liste de tous les fichiers texte en commençant par le dossier en cours.

Enfin, si vous souhaitez trouver un certain fichier par son nom et le supprimer, utilisez l’argument -delete après le nom du fichier :

find . -name my-file -delete

Utilisation de Find pour rechercher par type

Linux permet aux utilisateurs de répertorier toutes les informations en fonction de leur type. Il existe plusieurs filtres que vous pouvez utiliser :

  • d – répertoire ou dossier
  • f – fichier normal
  • l – lien symbolique
  • c – dispositifs de caractères
  • b – dispositifs de blocage

Voici un exemple simple d’utilisation d’un type de fichier :

find / -type d

La liste de tous les répertoires actuels de votre système s’affichera puisque nous avons effectué une recherche à partir de notre répertoire racine à l’aide du symbole / (barre oblique).

Vous pouvez également combiner les options -type et -name pour affiner vos recherches :

find / -type f -name my-file

La recherche portera sur les fichiers nommés my-file, à l’exclusion des répertoires et des liens.

Utilisation de Find pour effectuer une recherche par heure

Si vous souhaitez rechercher des fichiers en fonction du moment où ils ont été consultés et des empreintes de temps de modification, Linux garde une trace des fichiers en utilisant ces trois horodatages. Linux conserve la trace des fichiers à l’aide de ces trois horodatages.

  • Heure d’accès (-atime) – moment où le fichier a été lu ou écrit.
  • Heure de modification (-mtime) – date à laquelle le fichier a été modifié.
  • Heure de changement (-ctime) – date à laquelle les métadonnées du fichier ont été mises à jour.

Cette option doit être utilisée avec un nombre qui indique le nombre de jours écoulés depuis que le fichier a été consulté, modifié ou changé :

find / -atime 1

Cette commande affiche tous les fichiers qui ont été consultés il y a un jour à partir de l’heure actuelle.

Nous pouvons restreindre davantage nos recherches en ajoutant les signes plus (+) et moins (-) précédant le nombre de jours. Par exemple :

find / -mtime +2

Il répertorie tous les fichiers dont la date de modification remonte à plus de deux jours.

Pour trouver tous les fichiers dont les métadonnées ont été mises à jour il y a moins d’un jour, exécutez la commande suivante :

find / -ctime -1

Bien qu’ils ne soient pas souvent utilisés, il existe des arguments supplémentaires qui sont également liés aux recherches temporelles. L’argument -mmin recherche les fichiers modifiés toutes les minutes. Il peut être utilisé comme suit :

find / -mmin -1

Nous disposons également de l’argument -newer, qui peut être utilisé pour comparer l’âge de deux ou plusieurs fichiers et afficher le plus récent.

find / -newer my-file

Vous obtiendrez tous les fichiers qui ont été modifiés plus récemment que le vôtre.

Utiliser Find pour rechercher par taille

Linux vous permet de rechercher des fichiers en fonction de leur taille. La syntaxe pour rechercher des fichiers par taille est la suivante :

find <startingdirectory> -size <size-magnitude> <size-unit>

Vous pouvez spécifier les unités de taille suivantes :

  • c – octets
  • k – kilo-octets
  • M – mégaoctets
  • G – gigaoctets
  • b – morceaux de 512 octets

Voici un exemple simple de l’utilisation de la commande find pour déterminer la taille d’un fichier :

find / -size 10M

Ici, nous recherchons tous les fichiers de votre système qui font exactement 10 mégaoctets. Comme pour la recherche basée sur la durée, vous pouvez filtrer davantage vos recherches à l’aide des signes plus et moins :

find / -size +5G

Il affichera tous les fichiers dont la taille est supérieure à cinq gigaoctets.

Utilisation de Find pour rechercher par propriétaire

Linux vous donne la possibilité de limiter vos recherches en fonction de la propriété des fichiers. Pour trouver les fichiers d’un certain propriétaire, la commande suivante doit être exécutée :

find / -user john

Le script renvoie une liste de tous les fichiers appartenant à l’utilisateur nommé john. Comme pour les noms d’utilisateur, il est possible de trouver des fichiers à partir des noms de groupes :

find / -group classroom

Utilisation de Find pour effectuer des recherches par permissions

Les utilisateurs peuvent rechercher des fichiers en fonction de leurs permissions à l’aide de l’option -perm. Par exemple, l’option -perm permet de rechercher des fichiers en fonction de leurs permissions :

find / -perm 644

Sous Linux, 644 correspond aux permissions de lecture et d’écriture. Cela signifie que cette commande recherchera tous les fichiers qui n’ont que des autorisations de lecture et d’écriture. Vous pouvez encore jouer avec cette option :

find / -perm -644

En ajoutant le symbole du tiret, il renverra tous les fichiers qui ont au moins l’autorisation 644.

N’hésitez pas à en savoir plus sur les permissions et les différents codes correspondant à d’autres permissions Linux.

Autres options utiles de la commande Find

Il existe d’autres options utiles que vous devez garder à l’esprit.

Par exemple, pour rechercher des fichiers et des dossiers vides sur votre système, procédez comme suit :

find / -empty

De même, pour rechercher tous les exécutables enregistrés sur votre disque, utilisez l’option -exec :

find / -exec

Pour rechercher des fichiers lisibles, vous pouvez exécuter la commande suivante :

find / -read

Comme vous pouvez le constater, les utilisateurs disposent d’une multitude d’options leur permettant d’adapter leurs requêtes comme ils le souhaitent. Examinons l’autre commande qui peut être utilisée pour localiser des fichiers sous Linux.

Syntaxe de la commande Locate

La commande locate est une alternative utile, car elle est plus rapide que la commande find lorsqu’il s’agit d’effectuer des recherches. En effet, la première ne parcourt que la base de données Linux et non l’ensemble du système. En outre, la syntaxe est relativement plus facile à écrire.

Vous pouvez maintenant utiliser la commande pour rechercher des fichiers en utilisant cette syntaxe :

locate [my-file]

La commande vanilla locate peut parfois renvoyer des fichiers qui ont été supprimés, si la base de données n’a pas été mise à jour. La meilleure solution consiste à mettre à jour manuellement la base de données en exécutant la commande suivante :

sudo updatedb

Comment installer le paquet Locate

Par défaut, la commande locate n’est pas préinstallée sous Linux. Pour obtenir le paquet, exécutez les commandes suivantes l’une après l’autre :

sudo apt-get update
sudo apt-get install mlocate

Exemples de la commande Locate

Nous allons partager avec vous les applications les plus courantes de la commande locate de Linux.

Utiliser de Locate pour rechercher le nom exact d’un fichier

La syntaxe de base ne permet de rechercher que les fichiers qui contiennent le terme recherché. Si vous souhaitez obtenir le fichier avec le nom exact, vous pouvez utiliser l’option -r et ajouter le symbole du dollar ($) à la fin de votre terme de recherche, par exemple :

locate -r my-file$

Utilisation de Locate pour compter le nombre de fichiers

Pour savoir combien de fichiers apparaissent dans le résultat de votre recherche, insérez -c après la commande locate.

locate -c my-file

Au lieu d’énumérer tous les fichiers, il vous indiquera leur nombre total.

Utiliser Locate pour ignorer les majuscules et les minuscules

Utilisez l’option -i de la commande locate de linux pour ignorer les fichiers sensibles à la casse. Par exemple :

locate -i my-file

Tous les fichiers portant ce nom seront affichés, quels que soient les symboles majuscules ou minuscules trouvés.

Utilisation de Locate pour afficher les fichiers existants

Comme nous l’avons mentionné, la commande locate de Linux peut même vous montrer un fichier supprimé si vous n’avez pas mis à jour la base de données. Heureusement, vous pouvez contourner ce problème en utilisant l’option -e, comme ceci :

locate -e my-file

Ce faisant, vous n’obtiendrez que les fichiers qui existent au moment où vous exécutez la commande locate.

Utiliser Locate pour désactiver les erreurs lors de la recherche

L’option -q permet d’éviter que des erreurs ne s’affichent lors du traitement de la recherche. Pour ce faire, il suffit d’entrer :

locate -q my-file

Utilisation de Locate pour limiter le nombre de résultats de la recherche

Si vous souhaitez limiter le nombre de résultats de la recherche, l’option -n <nombre> fera l’affaire. Cependant, n’oubliez pas que vous devez placer l’option à la fin de la ligne de commande. Voici un exemple :

locate my-file n 10

Le script n’affichera que les 10 premiers fichiers qu’il découvre, même s’il y en a plus.

Conclusion

Vous pouvez rechercher des fichiers sur votre serveur à l’aide des commandes find et locate de Linux. Ces deux outils puissants ont leurs propres avantages. C’est pourquoi nous vous encourageons à les essayer tous les deux et à voir lequel vous convient le mieux. Voici un bref résumé de ce dont nous avons parlé :

  • Utiliser find pour rechercher des fichiers en fonction du nom, du type, de la durée, de la taille, de la propriété et des permissions, ainsi que d’autres options utiles.
  • Installer et utiliser la commande locate de Linux pour effectuer des recherches de fichiers plus rapides à l’échelle du système. Elle vous permet également de filtrer par nom, en tenant compte des majuscules et des minuscules, par dossier, etc.

Si vous avez des questions, n’hésitez pas à les poser dans les commentaires !

Author
L'auteur

Chaimaa Chakir

Chaimaa est une spécialiste du référencement et du marketing de contenu chez Hostinger. Elle est passionnée par le marketing digital et la technologie. Elle espère aider les gens à résoudre leurs problèmes et à réussir en ligne. Chaimaa est une cinéphile qui adore les chats et l'analyse des films.