GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rechercher des fichiers sous Linux avec la commande Find

Présentation

Le find La commande vous permet de rechercher une chaîne de caractères spécifique à l'aide de votre interface de ligne de commande Linux. C'est un outil très pratique car il ne se limite pas aux noms de fichiers. Vous pouvez l'utiliser pour rechercher un emplacement spécifique, ajouter des options pour contrôler le comportement de la recherche et utiliser des commandes supplémentaires pour lui indiquer comment gérer les données qu'il trouve.

Ce didacticiel vous montre comment localiser et gérer des fichiers sous Linux avec find commande.

Prérequis

  • Accès à une fenêtre de terminal/ligne de commande
  • Un compte utilisateur avec sudo privilèges

Syntaxe de base de la commande de recherche

La syntaxe de base de la find commande utilise le format suivant :

find <options> <location> <expression> <action> <name>
  • Emplacement – ​​ Ordonne à find où commencer à chercher votre terme de recherche.
  • Expression – Dit find quelle catégorie d'informations il est censé rechercher.
  • Action – L'action L'attribut exécute une commande sur les résultats de la recherche. C'est un élément facultatif.
  • Nom – Représente la chaîne de texte (ou d'autres données) que vous recherchez.
  • Options – Cet attribut n'est pas un élément obligatoire du find commande. Il peut être utilisé pour contrôler le comportement et optimiser le processus de recherche.

Comment utiliser la commande de recherche

Le find La commande répertorie toutes les instances de la chaîne de caractères que vous avez incluses dans votre recherche. Le find La commande vous permet également de définir des paramètres de recherche, des options et des emplacements avec un haut niveau de précision.

Rechercher des fichiers par emplacement

La recherche de fichiers en fonction de leur chaîne d'emplacement peut être une simple commande telle que :

sudo find /home/user filename

Cette commande recherche l'utilisateur compte dans la maison annuaire. Si vous n'êtes pas certain de l'endroit où vous voulez chercher, vous pouvez élargir l'emplacement de la recherche.

Par exemple, si vous avez deux comptes d'utilisateurs et que vous ne vous souvenez plus sur lequel vous avez enregistré un fichier, vous pouvez saisir :

sudo find /home filename

Le find la commande recherche tout sous /home répertoire (y compris tous les répertoires d'utilisateurs) pour votre terme de recherche. Dans notre exemple, le terme de recherche est filename .

Utilisez un point . pour rechercher le répertoire dans lequel vous vous trouvez :

sudo find .

Saisissez une barre oblique / , et votre système va chercher sur tout le disque dur :

sudo find /

Le caractère tilde ~ est utilisé pour rechercher le répertoire personnel de l'utilisateur actuel :

sudo find ~

Utiliser des expressions avec la commande find

Les expressions appliquent des paramètres supplémentaires à find processus de recherche de commande. L'expression la plus courante est -name . Cette expression recherche l'emplacement que vous avez spécifié pour un fichier avec le nom que vous tapez dans le nom champ.

sudo find –name settings.txt

Le système recherchera dans le répertoire courant tout fichier portant le nom settings.txt.

Le système n'affiche que les noms de fichiers qui correspondent exactement à vos termes de recherche. Cette limitation peut causer des problèmes si un nom de fichier contient des majuscules, par exemple.

Pour indiquer find pour ignorer les majuscules/minuscules, utilisez le –iname expression, comme suit :

sudo find /home –iname filename

Le système recherche le /home répertoire et renvoie tout ce qui est nommé filename , NomFichier , et même FIlEnAmE .

Utilisez le –type d expression pour préciser si vous cherchez un fichier ou un répertoire :

sudo find . –type d –name Videos

Cette commande rechercherait dans le répertoire courant (avec le point) un répertoire portant le nom "Vidéos ."

Par défaut, find recherche des fichiers, mais vous pouvez spécifier des fichiers en utilisant -type f .

Afficher tous les fichiers qui n'incluent pas le nom recherché :

sudo find . -not filename

Rechercher des fichiers avec un niveau d'autorisation donné :

sudo find . -perm 0000

Renvoie la liste de tous les fichiers appartenant à un nom d'utilisateur spécifique :

sudo find . -user username

Afficher les 00 derniers fichiers modifiés :

sudo find . -mtime 00

La valeur numérique définit le nombre de fichiers que le système affiche. Afficher les 00 derniers fichiers consultés :

sudo find . -atime 00

Afficher tous les fichiers supérieurs à 20 mégaoctets :

sudo find . -size +20M

Le terminal présente une liste de tous les fichiers qui correspondent aux critères de taille.

Les commandes faisant référence à la taille des éléments recherchés peuvent être utilisées individuellement pour afficher tous les fichiers supérieurs à une certaine taille, inférieurs à une certaine taille ou compris dans une plage définie.

Rechercher un nom ou une extension

Le name L'attribut définit l'objet de votre recherche. Le find l'outil se rend à l'emplacement spécifié pour la chaîne de caractères que vous entrez. Généralement, le nom du fichier que vous recherchez se trouve à la fin de la commande, après l'emplacement, les options et les expressions.

Les lettres et chiffres standard sont entrés sous forme de chaîne de caractères à la fin de la commande. Les caractères spéciaux - un caractère générique, un point, une barre oblique, etc. - nécessitent l'utilisation de guillemets simples autour du nom. Les guillemets simples garantissent que le système interprète correctement la demande.

Entrez la commande suivante pour rechercher des fichiers avec une extension spécifique, comme .html ou .php :

sudo find . –type f –name ‘*.html’

Le système recherche dans le répertoire courant les fichiers normaux (type –f ) qui ont une extension de .php . Dans ce cas, l'astérisque (le * signe) est utilisé comme caractère générique , ce qui signifie qu'il peut remplacer n'importe quel nombre de caractères de n'importe quel type.

Les caractères génériques sont utiles si vous ne vous souvenez que d'une partie d'un nom de fichier ou si vous recherchez des fichiers avec une extension particulière.

Effectuer des actions avec la commande find

Nous avons vu comment utiliser le find commande pour afficher les résultats de la recherche dans la fenêtre de votre terminal. Une action L'attribut peut améliorer cette fonctionnalité et effectuer une tâche particulière une fois qu'un fichier est localisé.

La commande suivante recherche le contenu réel des fichiers (au lieu de simplement les noms des fichiers) :

sudo find ~ –type f –exec grep “contents” ‘{}’ \; –print
  1. Nous demandons au système de trouver un fichier (-type f ) dans le répertoire personnel de notre utilisateur (~ ).
  2. Nous demandons au système d'agir (-exec ) en exécutant le grep commande pour rechercher dans le contenu de tous les fichiers le mot contenu .
  3. Le {} les parenthèses indiquent les résultats de correspondance de la find commande, et ils sont entre guillemets simples afin que le grep commande ne les interprète pas mal.
  4. Nous fermons le grep commande avec un point-virgule (; ), et nous utilisons une barre oblique inverse (\ ) afin que le système n'interprète pas le point-virgule comme une instruction.
  5. Enfin, le –print option indique au système d'afficher les résultats.

Copiez et collez cette commande dans la fenêtre de votre terminal et remplacez votre chemin de recherche par ~ caractère et votre terme de recherche pour le mot contenu.

Vous pouvez utiliser le find –exec combinaison pour modifier rapidement les autorisations de fichiers :

sudo find /path –name “filename.ext” –exec chmod 777 ‘{}’ \;

Cette commande utilise le –exec commande pour exécuter chmod pour modifier les autorisations de fichier du fichier filename.ext afin qu'il puisse être lu, écrit et exécuté par tout le monde.

Rechercher et supprimer des fichiers avec la commande find

Avec le –delete commande, vous pouvez rapidement trouver et supprimer un ou plusieurs fichiers en une seule commande.

Dans cet exemple, find supprime tous les fichiers qui se terminent par .html extension.

sudo find . –name “*.html” –delete

Cette commande va rechercher dans le répertoire courant (affiché dans votre invite de commande) tous les fichiers avec le .html extension, et supprimez-les. L'image illustre la simplicité du processus.

Ce type d'action est utile pour supprimer les anciens fichiers de sauvegarde si vous avez remplacé "*.bak" au lieu de "*.bmp".

Ajouter des options pour trouver la commande

Les options sont des fonctions spéciales insérées avant le chemin de recherche dans un find chaîne de commande. Le -L , -H , et -P sont des éléments optionnels utilisés pour contrôler la gestion des liens symboliques.

  • –P Cette option représente le comportement par défaut. Le système ne suit pas les liens symboliques.
  • -H Le système ne suit pas les liens symboliques sauf lors du traitement de cette commande spécifique.
  • -L Suit les liens symboliques. Les informations sont extraites du fichier vers lequel le lien pointe. Pas pour le lien lui-même.

Les options peuvent modifier le niveau d'optimisation de la recherche. Il existe trois (3) niveaux d'optimisation qui définissent la façon dont le programme de recherche organise les recherches et la vitesse d'exécution de cette recherche.

  • –O1 Ce niveau d'optimisation est utilisé par défaut. Les recherches basées sur les noms de fichiers sont exécutées en premier.
  • –O2 Les recherches basées sur le type sont exécutées juste après les recherches basées sur les noms. Avant toute autre recherche.
  • –O3 Les recherches sont effectuées pour maximiser la vitesse. Indépendamment des autres éléments de requête.

Linux
  1. Rechercher des fichiers et des répertoires sous Linux avec la commande find

  2. Comment auditer les autorisations avec la commande find

  3. Utilisation de la commande Linux find – Utilisation avec des exemples

  4. Comment trouver des fichiers en double sous Linux ? L'aide est ici avec la commande fdupes !

  5. Comment utiliser la commande Linux find pour rechercher des fichiers

Comment rechercher des fichiers avec la commande fd sous Linux

Comment télécharger des fichiers avec la commande Curl sous Linux

Comment télécharger des fichiers avec la commande Wget sous Linux

Tutoriel sur la commande de recherche Linux (avec exemples)

Comment trouver des dossiers sous Linux

Comment rechercher des fichiers avec des dizaines de critères avec la commande Bash Find