Comment utiliser la commande Rechercher pour rechercher des fichiers sous Linux

Il y a des moments où vous souhaitez accéder à un fichier spécifique mais que vous ne pouvez pas le trouver sur votre système en raison d'un manque d'organisation des dossiers. Heureusement, Linux vous fournit des utilitaires pratiques qui vous permettent de rechercher facilement des fichiers sur votre ordinateur.

La commande find est l'un de ces outils qui peut être utilisé pour rechercher un fichier en utilisant son nom de fichier, ses permissions, son extension, sa taille, etc. Ce guide expliquera la commande Linux Find et fournira quelques exemples qui démontrent la puissance de cet utilitaire.

Qu'est-ce que la commande Find?

Comme son nom l'indique, la commande find permet à un utilisateur de rechercher des fichiers présents sur son stockage local. Contrairement aux fonctionnalités de recherche normales présentes dans les gestionnaires de fichiers Linux, la commande find a des fonctions supplémentaires qui peuvent filtrer les fichiers selon certaines conditions.

En outre, la commande find fournit plusieurs critères pour localiser les fichiers sur un ordinateur. Vous pouvez même utiliser des expressions régulières pour faire correspondre le nom d'un fichier avec un modèle spécifique.

Comment trouver des fichiers sous Linux

La commande find a de nombreuses options et fonctions qui filtrent les fichiers en fonction des conditions spécifiées.

Rechercher la syntaxe de la commande

La syntaxe de base de la commande find est:

 find [path] [options] [expression]

Par exemple, la commande suivante recherchera des fichiers texte dans le répertoire / home .

 find /home -type f -name "*.txt"

N'oubliez pas qu'avant de rechercher des fichiers sur votre stockage, vous devez disposer des autorisations de lecture pour ce répertoire particulier.

Rechercher des fichiers par nom

L'utilisation la plus courante de la commande find consiste à rechercher un fichier par son nom. Pour rechercher un fichier à l'aide du nom de fichier, utilisez l'indicateur -name avec la commande par défaut.

 find /home -type f -name filename.txt

La commande susmentionnée recherchera un fichier nommé filename.txt dans le répertoire / home . L'option -type f indique au système que nous recherchons un fichier .

Si vous souhaitez ignorer la casse des caractères dans le nom de fichier, remplacez l'option -name par -iname .

 find /home -type f -iname FileName

Cette commande localisera un fichier portant l'un des noms suivants: nom de fichier, nom de fichier, nom de fichier, nom de fi, etc.

Comme toute autre commande Linux, vous pouvez utiliser . (point) pour spécifier également le chemin relatif du répertoire courant.

 find . -type f -name filename.txt

De même, / for / root et ~ for / home peuvent également être utilisés.

Rechercher des fichiers par extension

La recherche de fichiers avec une extension particulière peut vous aider à affiner vos résultats de recherche. Pour rechercher un fichier par son extension, utilisez l'expression régulière suivante avec les indicateurs -name et -iname .

 find /home -type f -name "*.pdf"

Cette commande affichera une liste de tous les fichiers qui ont l'extension .pdf . Notez que vous devrez échapper le caractère astérisque ( * ) avec des guillemets ( "" ) ou une barre oblique inversée ( ) pour que le terminal l'interprète comme un caractère générique.

Vous pouvez également inverser la commande ci-dessus en utilisant l'indicateur -not . La commande suivante recherchera les fichiers qui n'ont pas l'extension .pdf .

 find /home -type f -not -name "*.pdf"

Vous pouvez même diriger la commande find avec d'autres commandes Linux. Par exemple, pour modifier les autorisations de modération pour chaque fichier qui correspond à la condition:

 find /home - type f "*.pdf" -exec chmod -777 {} ;

Cette commande recherchera tous les fichiers PDF dans le répertoire / home et modifiera leurs autorisations afin que tout le monde puisse lire, écrire et exécuter ces fichiers.

Rechercher des types de fichiers spécifiques

En plus des fichiers, la commande find peut également rechercher d'autres types de fichiers. Les répertoires, les liens symboliques, les sockets et les périphériques de caractères font partie des types de fichiers pris en charge par find.

Jusqu'à présent, nous avons utilisé l'option -type f dans la commande find. Le f signifie fichier . Pour rechercher d'autres types de fichiers sous Linux, remplacez f par d'autres caractères réservés.

  • f : fichiers normaux
  • d : répertoires
  • l : liens symboliques
  • c : périphériques de caractères
  • b : bloquer les périphériques
  • p : tube nommé
  • s : prises

Pour rechercher des sous-répertoires présents dans le répertoire / home :

 find /home -type d

Rechercher des fichiers par taille

L'indicateur -size vous permet de rechercher des fichiers qui occupent une certaine quantité d'espace sur le disque. Les suffixes suivants indiquent les différentes tailles de fichier:

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

Pour rechercher tous les fichiers dont la taille est de 1 Go:

 find /home -type f -size 1G

Pour rechercher des fichiers de moins de 1 Go, ajoutez le caractère moins ( ) avant de spécifier la taille:

 find /home -type f -size -1G

De même, utilisez l'opérateur plus ( + ) pour localiser les fichiers supérieurs à 1 Go:

 find /home -type f -size +1G

Pour rechercher des fichiers dans une plage de tailles:

 find /home -type f -size +1M -size -10M

Rechercher des fichiers à l'aide d'horodatages

Vous savez peut-être déjà que Linux attribue des horodatages spécifiques à chaque fichier de votre stockage. Ces horodatages contiennent l'heure de modification, l'heure de changement et l'heure d'accès.

Pour rechercher des fichiers avec une heure de modification particulière:

 find /home -type f -name "*.txt" -mtime 5

La commande mentionnée ci-dessus imprimera tous les fichiers qui ont été modifiés au cours des cinq derniers jours. De même, vous pouvez également utiliser -atime et -ctime pour filtrer les fichiers en fonction de l'heure d'accès et de l'heure de changement.

Vous pouvez également utiliser les signes plus et moins pour rechercher des fichiers supérieurs ou inférieurs à un horodatage spécifique.

 find /home -type f -name "*.txt" -mtime +5

Rechercher des fichiers avec des autorisations spécifiques

L'option -perm permet aux utilisateurs de rechercher des fichiers avec un ensemble particulier d'autorisations.

 find /home -type f -perm 777

Utilisez le caractère barre oblique ( / ) pour répertorier le fichier si au moins une catégorie a corrigé l'ensemble des autorisations fournies.

 find /home -type f -perm /777

Rechercher des fichiers par propriétaire

Utilisez l'indicateur -user pour obtenir les fichiers appartenant à un utilisateur particulier.

 find /home -user randomuser

Rechercher et supprimer des fichiers

Pour supprimer tous les fichiers filtrés à l'aide de find, ajoutez l'indicateur -delete à la fin de la commande.

 find /home -type f -name "*.pdf" -delete

La commande susmentionnée supprimera tous les fichiers PDF présents dans le répertoire / home .

Vous ne pourrez pas supprimer les répertoires non vides avec find. Vous devrez utiliser la commande rm pour supprimer ces dossiers sur votre système Linux.

Organisation des fichiers sous Linux

La recherche de fichiers est difficile si vous avez des centaines de répertoires sur votre système sans noms appropriés. La commande find est pratique lorsque vous souhaitez filtrer les fichiers dans un répertoire selon un critère spécifique.

Pour tirer le meilleur parti de votre stockage sur un système Linux, l'organisation et la gestion des fichiers sont indispensables. Un regroupement approprié des dossiers et la suppression des données redondantes peuvent vous aider à accéder rapidement aux fichiers de votre choix.