Ce tutoriel se concentre sur la façon de trouver des fichiers sous Linux à l’aide des commandes find et locate.

en tant qu’administrateur système, il est très courant de rechercher un fichier spécifique sur votre système de fichiers.

Cependant, il peut être parfois difficile de trouver des fichiers sur un système de fichiers Linux, surtout si vous avez des dizaines de différents utilisateurs.

deux commandes peuvent vous aider à atteindre votre objectif : rechercher et localiser.,

Dans ce tutoriel, nous allons voir comment utiliser ces commandes de manière efficace et comment ils peuvent être ajustés pour obtenir ce que nous recherchons.

Table des Matières

Rechercher des Fichiers à l’aide de la commande Find

La première façon de trouver et de localiser des fichiers sur un hôte Linux est d’utiliser la commande rechercher.,

par défaut, la commande find est disponible sur toutes les distributions et elle a la syntaxe suivante

$ find <options> <path> <expression>

conseil rapide : Avez-vous du mal à vous souvenir si path ou expression vient en premier?

rappelez-vous que pour le Grep est le chemin D’Expression, et find est le contraire, donc L’Expression de chemin!

Trouver une jolie commande puissante qu’elle a beaucoup plus d’options que la commande locate.

Voici toutes les possibilités de la fonction de recherche sur Linux.,

Rechercher des fichiers avec la fonction de recherche par nom de fichier

l’utilisation La plus courante de la fonction de recherche pour localiser les fichiers donnés leurs noms.

$ find <path> -name <pattern>

la principale différence entre find et locate lorsqu’il s’agit de rechercher des fichiers est que find recherchera les noms de fichiers tandis que locate recherchera les chemins d’accès au fichier.

Par exemple, si nous revenons à l’exécution de l’exemple précédent, voici comment regarder pour le niveau d’exécution des fichiers à l’aide de la commande find.,

$ find / -name runlevel*

Quel est le « 2> /dev/null” partie?

j’ai redirigé la sortie d’erreur vers /dev/null à l’aide de redirection de la sortie pour éviter les messages d’erreur sur la console.

rechercher des fichiers à l’aide de find by filetype

Comme nous l’avons vu précédemment dans notre article sur les liens durs et logiciels, les fichiers sont assignés à des types de fichiers et sont utilisés pour les différencier.,

Voici un récapitulatif de tous les types de fichiers utilisé sur Linux.

  • f : un fichier standard
  • d : un dossier ou un répertoire
  • l : un lien symbolique ou un lien logiciel
  • b : bloquer les périphériques (comme un disque dur par exemple)
  • c : périphériques de caractères (ports série, cartes son)
  • p : pipe nommée
  • s : socket

connaissant tous ces types de fichiers par type de fichier avec la commande find.

$ find <path> -type <filetype>

Par exemple, si l’on recherche tous les liens symboliques sur l’hôte, nous exécutez la commande suivante.,

$ find / -type l

Les paramètres peuvent être combinés, par exemple si je recherche tous les liens symboliques dont les noms de fichiers se terminent par « .service  » ” pour isoler tous les services systemd par exemple), j’exécuterais la commande suivante.

$ find / -type l -name *.service

Rechercher des fichiers à l’aide d’un modèle (pour les extensions)

de Même pour la commande locate, vous êtes en mesure de trouver des fichiers sur Linux à l’aide d’un modèle.

Pour rappel, un motif est une chaîne qui comprend des caractères globbing (tels que *, ?, ou des plages).

cette option est particulièrement utile lorsque vous essayez de trouver des fichiers ayant une extension, par exemple des fichiers Javascript.

Pour trouver des fichiers sur Linux à l’aide d’un modèle, exécutez la commande suivante

$ find <path> -name ".<extension>"
$ find / -name "*.js"

Fichiers fichiers sur Linux par le propriétaire

Parfois, vous souhaitez isoler les fichiers créés par un utilisateur donné.

Lors de la suppression d’un utilisateur sur votre hôte, vous pouvez supprimer tous les fichiers associés à cet utilisateur par exemple.,

parfois, les utilisateurs créent des fichiers à partir de leur répertoire personnel et la suppression d’un répertoire personnel utilisateur n’est pas suffisante en soi.

ainsi, pour trouver les fichiers créés par un utilisateur sur Linux, exécutez la commande suivante

$ find <path> -user <user>

par exemple, Pour trouver tous les fichiers appartenant à « john” sur mon hôte, je exécutez la commande suivante.

$ find / -user john

Maintenant, si je veux supprimer tous les fichiers appartenant à jean avec une simple commande?,

Il peut être facilement réalisé en utilisant l’indicateur delete.

$ find / -user john -delete

rechercher des fichiers sous Linux par permissions

En utilisant la commande find, Vous pouvez également rechercher et localiser les fichiers qui ont certaines autorisations sur votre hôte.

$ find <path> -perm <permissions>

pour rappel, voici comment les autorisations de fichier sur Linux.

pour trouver tous les fichiers qui ont des autorisations complètes (a 777 étant donné la notation binaire), vous pouvez exécuter la commande suivante.,

$ find / -perm 777

Il peut être très pratique si, pour des raisons de sécurité, vous souhaitez inspecter si aucun fichier n’est configuré avec des autorisations complètes sur votre système.

Rechercher des fichiers avec find, par taille

une Autre manière très pratique de trouver et de localiser des fichiers sur Linux est de trouver la commande find avec l’option de taille.

La taille option vous permet de rechercher les fichiers qui sont exactement la même taille que vous spécifiez, supérieure à une taille spécifique ou inférieure à une taille spécifique.,

pour rechercher des fichiers par taille, utilisez la commande suivante

$ find <path> -size <size>

la taille est définie par les préfixes suivants :

  • c: octets
  • b: blocs de 512 octets
  • k: kilo-octets
  • M: mégaoctets
  • G: gigaoctets

Vous pouvez spécifier un « +” si vous recherchez des fichiers supérieurs à la taille spécifiée.,

par exemple, pour trouver des fichiers supérieurs à 1 Go sur votre système, exécutez la commande suivante

$ find / -size +1G

pour trouver des fichiers inférieurs à 10 Mo sur votre système, exécutez la commande suivante

$ find / -size -10M

enfin, pour rechercher des fichiers qui sont exactement la taille spécifiée dans ou moins préfixes à la commande.

$ find / -size 1024k

la commande qui vient d’être définie trouvera tous les fichiers dont la taille est exactement de 1024 Kbs sur votre hôte.,

rechercher des fichiers sous Linux par date de modification

En utilisant la recherche, vous pouvez également trouver des fichiers avec une date de modification, récente ou non.

Cette commande est très pratique et utilisée assez souvent par les administrateurs système pour trouver des fichiers ou des répertoires qui ont été récemment modifiés.

pour rechercher des fichiers À l’aide de la recherche par date de modification, exécutez la commande suivante

$ find <path> -mtime <time>

Où le temps représente les fichiers modifiés 24*<temps> heures.

en conséquence, le temps est exprimé en jours.,

de même que l’option taille, vous pouvez ajouter un opérateur « plus” ou « moins” à l’heure pour rechercher les fichiers modifiés plus que <time> il y a quelques jours, ou moins que <time> il y a quelques jours.

Par exemple, pour rechercher des fichiers modifiés il y a exactement 3 heures, vous devez exécuter la commande suivante.,

$ find / -mtime 3

pour trouver des fichiers modifiés il y a plus d’une semaine, vous devez exécuter la commande suivante

$ find / -mtime +7

pour trouver des fichiers modifiés il y a moins de deux jours, vous devez exécuter la commande suivante

$ find / -mtime -2

/h3>

comme vous l’avez probablement remarqué, depuis le début de ce tutoriel, nous donnons des exemples de recherches de fichiers à partir du répertoire racine.

en conséquence, tous les dossiers sont parcourus récursivement.,

Cependant, nous pouvons restreindre le nombre de répertoires parcourus récursivement à partir d’un répertoire, c’est ce qu’on appelle la profondeur.

afin De limiter les recherches de fichiers à une profondeur donnée, exécutez la requête suivante

$ find <path> -maxdepth <depth>

par exemple, voici comment vous pouvez restreindre les recherches de fichiers dans le répertoire en cours, sans enfants, répertoires parcourues.

$ find / -maxdepth 1

Vous pouvez évidemment combiner cette commande avec l’indicateur name afin de rechercher des fichiers avec un nom donné dans le répertoire courant.,

$ find . -maxdepth 1 -name *.tar

le Chaînage de trouver avec -exec

Dans certains cas, vous pourriez trouver utile de la chaîne de la commande find avec l’un exec.

l’option exec peut être utilisée pour enchaîner plusieurs commandes : en prenant le résultat de la première comme entrée de la seconde.,

par exemple, disons que vous voulez rechercher tous les fichiers modifiés moins d’une minute auparavant

$ find /home/user -mmin -1./file1

Maintenant, disons que vous souhaitez supprimer tous les fichiers qui ont été modifiés moins d’une minute auparavant.

Vous pouvez enchaîner la commande find avec l’option-exec en utilisant cette syntaxe.

$ find /home/user -mmin -1 -exec echo rm -f '{}' \;

Nous avons bien évidemment en premier « echo” les résultats que nous voulons nous assurer que nous sommes en supprimant les fichiers corrects.,

lorsque vous êtes prêt à supprimer ces fichiers, supprimez simplement la commande echo.

$ find /home/user -mmin -1 -exec rm -f '{}' \;

rechercher des fichiers sous Linux à l’aide de la commande Locate

Une autre excellente façon de trouver et de localiser des fichiers sous Linux est d’utiliser la commande locate.

conditions Préalables

Si la commande locate n’est pas disponible sur votre système, assurez-vous de lire la section suivante pour obtenir de localiser en cours d’exécution sur votre système.,

a – Installation de Locate sur les distributions APT et RPM

pour installer locate, vous aurez besoin des privilèges sudo sur votre hôte Linux.

pour vérifier si locate est installé sur votre hôte, exécutez la commande locate dans la ligne de commande.,

$ locate

Si localiser est installé sur votre ordinateur, il va s’attendre à une expression de condition

Si recherchez n’est pas installé sur votre ordinateur hôte, un message d’erreur s’affiche

Pour installer localiser sur Ubuntu 18.04 et Debian 10, exécutez la commande suivante.,

$ sudo apt-get install mlocate

de même, si vous utilisez une distribution basée sur CentOS ou Fedora, exécutez la commande suivante pour installer locate.

$ sudo yum install mlocate

B – mise à jour de votre base de données mlocate

la fonction locate fonctionne avec une base de données locale stockée sur votre système de fichiers qui stocke chaque nom de fichier de votre hôte.

Lors de l’exécution d’une commande locate, recherchez recherche dans la base de données préparée par updatedb pour le fichier que vous recherchez.

périodiquement, une tâche cron met à jour le mlocate.fichier db pour que vous puissiez rechercher les entrées les plus récentes.,

La base de données se trouve à /var/lib/MLOCATE/mlocate.db par défaut et le fichier de configuration updatedb est stocké dans /etc / updatedb.conf.

pour l’instant, vous pouvez laisser les options par défaut et exécuter une simple commande updatedb pour que votre base de données soit actualisée.

$ sudo updatedb

localisation de fichiers donné un modèle de nom

la façon La plus simple pour trouver des fichiers sur Linux est de fournir un modèle pour la commande locate.,

Par défaut, la syntaxe de la commande locate est la suivante

$ locate ... ...

Si vous êtes à la recherche d’un fichier de configuration sur votre système, un moyen facile de le trouver est de fournir un nom de fichier complet de la commande locate.

$ locate updatedb.conf

Comme vous pouvez le voir, la commande locate retourne le chemin complet vers le fichier, je suis à la recherche d’.,

Localisez les fichiers dans des répertoires restreints

parfois, vous n’avez pas accès à certains répertoires de votre système.

en conséquence, vous ne pourrez pas localiser les fichiers qui s’y trouvent.

prenons l’exemple d’un interdit dossier contenant un fichier nommé « restreint fichier ».

Pour localiser les fichiers situés sur les répertoires, vous devez exécuter la commande locate avec des privilèges sudo.,

$ sudo locate restricted-file

Localiser les fichiers en utilisant un motif

à l’Aide de la commande locate, vous pouvez fournir des « modèles” dans la forme de l’expansion des caractères.

Les caractères Globbing, également appelés caractères génériques, sont des caractères utilisés pour faire correspondre une ou plusieurs entrées avec une expression simplifiée.

le plus populaire est le « *” qui correspond à n’importe quel caractère, y compris aucun.

Voici un tableau récapitulatif pour les caractères globbing et leurs fonctions.,6934f1″>

devdevco, matches one character given in the bracket ab aab, bab cab

matches one character from the (locale-dependent) range given in the bracket runlevel runlevel1, runlevel2, runlevel6 runlevels, runlevelo

As an example, here’s a way to locate all text files on your system.,

$ locate *.txt

localisation de fichiers à l’aide d’une expression régulière

Comme indiqué dans l’officiel de la page de man pour les localiser, de les localiser commande accepte un modèle en entrée.

cela signifie que vous pouvez fournir une expression régulière à la commande locate.

pour rechercher et localiser les fichiers ayant une expression régulière, utilisez l’option –regex pour la commande locate.,

$ locate --regex <regex>

par exemple, Pour isoler tous les fichiers commençant par le niveau d’exécution suivi d’un nombre, vous devez exécuter la commande suivante.

$ locate --regex runlevel+

Lors de l’utilisation de regexes, il y a un point important que vous devez être conscient lors de la localisation des fichiers.

la commande locate recherche des chemins d’accès aux fichiers dans sa base de données locale.,

en conséquence, lors de la recherche de fichiers, vous devez savoir que votre expression régulière doit correspondre au chemin d’accès au fichier et non au seul nom du fichier.

par exemple, si je recherche des fichiers commençant par « run”, aucun résultat ne sera renvoyé car le chemin d’accès au fichier commence par « /usr”.

localiser les fichiers en utilisant l’option insensible à la casse

lors de la recherche de fichiers sur votre système de fichiers, vous ne pouvez pas être sûr de la façon,

Était-il écrit en majuscules ou en minuscules? Ne contient que des majuscules à tous?

pour rechercher et localiser des fichiers à l’aide d’une option insensible à la casse, ajoutez l’option-i à votre commande locate.,

$ locate -i <file_pattern>

les fichiers de Recherche par le contenu à l’aide de grep

Dans certains cas, vous pouvez être intéressé par la recherche de fichiers qui correspondent à un mot de la phrase qui est situé à l’INTÉRIEUR du fichier.

Cela peut se produire par exemple si vous essayez de trouver le fichier contenant les journaux d’événements.,

la première façon de rechercher des fichiers correspondant à un mot spécifique est d’utiliser la commande grep

$ grep -r <pattern> <path>

Remarque : n’oubliez pas l’option « -r” Si vous recherchez des fichiers dans des répertoires entiers.

Par exemple., si vous êtes à la recherche de tous les fichiers ayant une « erreur” dans leur contenu, situé dans votre répertoire d’accueil, tapez

$ grep -r error /home/user

Dans certains cas, vous pouvez trouver les fichiers donnés une expression régulière.

pour trouver des fichiers utilisant une expression régulière, utilisez l’option « -E”.,

$ grep -r -E <expression> <path>

par exemple, disons que vous voulez trouver le fichier correspondant à la  » abc  » motif dans un de vos fichiers, vous tapez

$ grep -r -E "abc.*" --color /home/user

Remarque : l’option de couleur est utilisé pour mettre en évidence les correspondances à l’aide de la commande grep.,

Rechercher des fichiers à l’aide de lequel

un Autre excellent moyen de localiser des fichiers sur Linux est d’utiliser la commande.

La commande est utilisée afin de localiser les fichiers associés à une commande spécifique.

cela peut devenir très pratique lorsque vous ne savez pas où vous avez stocké vos binaires pour une commande ou si vous avez besoin de localiser une commande pour l’ajouter à votre chemin.,

$ which <command>

Par exemple, pour rechercher les fichiers associés à l’ « ls” de commande, tapez

$ which ls/usr/bin/ls

Comme vous pouvez le voir, on vous donne le chemin complet du fichier.

Localisez les binaires en utilisant whereis

de même, il est tout à fait possible de rechercher des fichiers en utilisant la commande whereis.

Le « whereis” commande peut être vu comme un sur-ensemble de la commande « which”: « whereis” fournit des informations sur le nom de la commande, à l’emplacement du fichier ainsi que l’emplacement des pages de manuel.,

pour exécuter whereis, tapez simplement « whereis” et ajoutez le nom de votre commande.

$ whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

bien pratique!

Conclusion

dans le tutoriel d’aujourd’hui, vous avez appris comment trouver et localiser des fichiers sous Linux en utilisant deux commandes importantes : localiser et trouver.

même si les options ont été présentées individuellement, vous devez vous rappeler qu’elles peuvent être combinées afin de pouvoir spécifier encore plus les fichiers que vous recherchez.

Comme toujours, si vous êtes intéressé par L’administration système Linux, nous avons une section complète dédiée à Linux sur notre site web.,

As always, here is a short video on the subject in case you prefer Youtube videos.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *