Comment rechercher et trouver des fichiers sous Linux avec des commandes

Souvent, il est nécessaire de rechercher certains types de fichiers dans les environnements Linux et nous ne connaissons pas la bonne façon de les rechercher correctement sans perdre de temps.

Pour les distributions Linux, une commande appelée find a été développée pour filtrer de manière récursive les objets du système de fichiers en fonction d'un mécanisme conditionnel. Avec cette commande find, nous pouvons rechercher un fichier ou un répertoire dans son système de fichiers.

Si nous incluons le paramètre -exec, les fichiers peuvent être trouvés et traités immédiatement dans la même commande.

1. Rechercher des fichiers par nom ou par extension Commandes Linux


Nous pouvons utiliser find à partir de la ligne de commande pour localiser un fichier spécifique par nom ou extension.

Sa syntaxe est :

 find / home / username / -name "* .extension"
Par exemple, nous chercherons les fichiers se terminant par .gz :

AGRANDIR

2. Commandes pratiques et syntaxe à utiliser avec les commandes find Linux


Avec la commande find, nous avons quelques options de paramètres telles que :
 rechercher les options start/path expression
L'attribut options contrôlera le comportement et la méthode d'optimisation du processus de recherche. L'attribut home / path définira le répertoire de niveau supérieur où find commencera le filtrage.

L'attribut expression contrôle les tests qui recherchent la hiérarchie des répertoires pour produire une sortie.
Par exemple, nous pouvons exécuter ce qui suit :

 find -O3 -L / var / www / -name "* .html"
Cette commande active le niveau d'optimisation maximum (-O3) et permet de suivre les liens symboliques (-L) pour rechercher dans l'ensemble de l'arborescence des répertoires au chemin /var/www/ les fichiers se terminant par .html.

AGRANDIR

3. Options et optimisation avec les commandes Find Linux


La configuration par défaut de Find pour rechercher ignorera les liens symboliques (fichiers de raccourcis), si nous voulons que find suive et prenne les liens symboliques, nous pouvons ajouter l'option -L à la commande comme nous l'avons vu précédemment. Find a trois (3) niveaux d'optimisation qui sont -O1, -O2 et -O3.

L'optimisation -O1 est la valeur par défaut et vous oblige à rechercher pour filtrer en fonction du nom de fichier avant d'exécuter tous les autres tests.

L'optimisation au niveau -O2 donne la priorité aux filtres de nom de fichier, comme dans -O1, puis exécute tout le filtrage de type de fichier avant de passer à d'autres conditions plus gourmandes en ressources. L'optimisation du niveau -O3 permet à find d'effectuer une optimisation plus approfondie et de réorganiser tous les tests en fonction de leurs dépenses relatives et de la probabilité de meilleurs résultats.

Certaines des options sont :

C'est un filtre basé sur le premier nom de fichier

 -O1 (par défaut)

Utilisez d'abord le nom du fichier, puis le type de fichier

 -O2

Réorganiser les résultatsPermet à la recherche de réorganiser automatiquement la recherche en fonction de l'utilisation efficace des ressources et de la probabilité d'obtenir de meilleurs résultats.

 -O3

Recherche le répertoire actuel ainsi que tous les sous-répertoires X niveaux de profondeur

 -maxprofondeur X

Rechercher indépendamment de la casse du texte

 -mon nom

Renvoie uniquement les résultats qui ne correspondent pas au scénario de test

 -ne pas

Effectuer une recherche de fichier

 -type f

Rechercher dans les répertoires

 -type d

4. Rechercher des fichiers par modification de l'heure Commandes Linux


La commande find a la capacité de filtrer une hiérarchie de répertoires en fonction de la dernière modification du fichier.
La syntaxe est :
 find / -name "* conf" -mtime 8 find / home / user / -name "* conf" -mtime 2
La première commande affichera une liste de tous les fichiers de l'ensemble du système de fichiers qui se terminent par des caractères conf et qui ont été modifiés au cours des 8 derniers jours. La deuxième commande filtre le répertoire personnel de l'utilisateur pour les fichiers dont le nom se termine par des caractères conf et qui ont été modifiés au cours des 2 jours précédents.

Utilisez Grep pour rechercher des fichiers basés sur le contenu Commandes LinuxLa commande find ne peut filtrer la hiérarchie des répertoires qu'en fonction d'un nom de fichier et de métadonnées. Par conséquent, si vous devez effectuer une recherche en fonction du contenu du fichier, utilisez un outil tel que grep.

Nous utiliserons la syntaxe suivante :

 trouver. -type f -exec grep "exemple" '{}' \; -imprimer
Cela recherche tous les objets dans la hiérarchie de répertoires actuelle (.) qui est un fichier (-type f), puis exécute la commande grep "exemple" pour chaque fichier qui remplit les conditions. Les fichiers correspondants sont imprimés à l'écran (-print). Les accolades ({}) sont un espace réservé pour les résultats de la recherche. Le {} est entouré de guillemets simples (') pour éviter que grep ne rende un nom de fichier mal formé. La commande -exec se termine par un point-virgule "(;)", qui doit être échappé "(\;)" pour éviter l'interprétation par le shell.

Comment rechercher et traiter des fichiers à l'aide de la commande Find Commandes LinuxNous pouvons utiliser l'option -exec pour exécuter des commandes sur tous les objets qui correspondent à l'expression de recherche.

Sa syntaxe est :

 trouver. -name "rc.conf" -exec chmod o + r '{}' \;
Cela filtrera tous les objets de la hiérarchie actuelle (.) Pour les fichiers nommés rc.conf et exécutera la commande chmod ou + r pour modifier les autorisations des résultats de la recherche.

Find est donc un allié pour la recherche complète de fichiers sur Linux.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave