GNU/Linux >> Tutoriels Linux >  >> Linux

Trouver des fichiers et des répertoires sous Linux comme un pro

Ce guide vous montrera comment utiliser les commandes "rechercher" et "localiser" pour rechercher des fichiers et des répertoires sur vos systèmes de fichiers Linux.

Table des matières

  • Rechercher des fichiers et des répertoires sous Linux à l'aide de la commande find
    • Rechercher des fichiers par nom
    • Rechercher des fichiers par nom partiel
    • Rechercher des fichiers par taille
    • Rechercher des fichiers à l'aide d'horodatages
    • Rechercher des fichiers par propriétaire
    • Rechercher des fichiers par autorisations
    • Rechercher des répertoires par nom
  • Rechercher des fichiers et des répertoires sous Linux à l'aide de la commande locate
    • Rechercher des fichiers par nom
    • Rechercher des fichiers par nom partiel
    • Limiter les résultats de recherche
    • Afficher le nombre d'entrées correspondantes
    • Obtenir des informations sur la localisation de la base de données
  • Conclusion

Il arrive parfois que vous souhaitiez accéder à un fichier spécifique mais que vous ne le trouviez pas sur votre système Linux. Bien qu'il existe de nombreuses façons de rechercher et de localiser des fichiers et des répertoires sous Linux, la plus simple et la plus rapide est probablement via le terminal.

Le find command est l'un des utilitaires de ligne de commande les plus importants et les plus fréquemment utilisés sous Linux.

Rechercher des fichiers et des répertoires sous Linux à l'aide de la commande find

La find de Linux La commande est un outil puissant qui permet aux administrateurs système de localiser et de gérer des fichiers et des répertoires en fonction d'un large éventail de critères de recherche. Il prend en charge la recherche par fichier, dossier, nom, date de création, date de modification, propriétaire et autorisations.

La find La commande est utilisée pour rechercher des fichiers et des répertoires et effectuer des opérations ultérieures sur ceux-ci. Il recherche les fichiers et les répertoires dans chaque chemin de manière récursive. Ainsi, lorsque le find rencontre un répertoire à l'intérieur du chemin donné, elle recherche d'autres fichiers et répertoires à l'intérieur.

Rechercher des fichiers par nom

La syntaxe générale de find la commande est :

find [path] [options] [expression]

Décomposons cette syntaxe :

  • path  : Définit le répertoire de départ dans lequel find recherchera les fichiers.
  • options  : contrôle la find comportement du processus et méthode d'optimisation.
  • expression  : Cet attribut est composé d'options, de modèles de recherche et d'actions séparés par des opérateurs.

L'utilisation la plus courante de la commande find est la recherche d'un fichier par son nom. Le -type f L'option indique au système que nous recherchons un fichier. Pour rechercher un fichier à l'aide du nom de fichier, utilisez le -name flag avec la commande par défaut.

Par exemple, pour rechercher un fichier nommé report.pdf dans le /home répertoire, vous utiliseriez la commande suivante :

find /home -type f -name report.pdf

Comme vous le savez, Linux est sensible à la casse pour les noms de fichiers , donc si vous recherchez un fichier nommé Report.pdf , la commande ci-dessus ne renverra aucun résultat. Dans ce cas, vous devrez utiliser le -iname option au lieu de -name .

Le -iname l'option exécute une recherche insensible à la casse , nous pouvons donc faire ceci :

find /home -type f -iname report.pdf

Cette commande localisera un fichier portant l'un des noms suivants :report.pdf , Report.pdf , REPORT.pdf , etc.

Rechercher des fichiers par nom partiel

Vous pouvez utiliser des métacaractères de nom de fichier comme astérisque (* ), mais vous devez soit mettre un caractère d'échappement (\ ) devant chacun d'eux ou placez-les entre guillemets.

Par exemple, pour trouver tous les fichiers se terminant par .pdf , vous pouvez exécuter :

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

qui est identique à :

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

De même, pour trouver tous les fichiers de votre système Linux dont les noms commencent par report , vous pouvez exécuter :

find /home -type f -name 'report*'

Rechercher des fichiers par taille

Utiliser find commande, nous pouvons aussi facilement réaliser quelque chose qui peut sembler compliqué :pour trouver des fichiers plus gros ou plus petits que la taille donnée .

La -size option sur find nous permet de rechercher des fichiers d'une taille spécifique. Le + et - les préfixes signifient "supérieur à" et "inférieur à", comme d'habitude.

L'exemple ci-dessous recherchera tous les fichiers supérieurs à 1 gigaoctet. Notez l'utilisation de + signe :

find /home -type f -size +1G

Dans l'exemple ci-dessus, le suffixe G désigne les gigaoctets. Les autres suffixes populaires disponibles sont :

  • c :octets.
  • k : Kilo-octets.
  • M :Mégaoctets.

La find ci-dessus La commande a été utilisée pour rechercher tous les fichiers supérieurs à la taille spécifiée. Ensuite, find L'exemple de commande recherchera tous les fichiers dont la taille est inférieure à 200 kilo-octets. Notez l'utilisation de - signe :

find /home -type f -size -200k

Maintenant, vous vous demandez probablement comment trouver des fichiers sous Linux entre une certaine taille . Par exemple, vous pouvez rechercher des fichiers dont la taille est comprise entre 100 Mégaoctets et 120 Mégaoctets à l'aide de la commande suivante :

find /home -type f -size +100M -size -120M

Rechercher des fichiers à l'aide d'horodatages

Linux attribue des horodatages spécifiques à chaque fichier du système de fichiers. Le find La commande peut également rechercher des fichiers en fonction de leur dernière modification , accéder ou modifier l'heure.

Le -mtime L'option est utilisée pour spécifier le nombre de jours d'ancienneté du fichier. L'expression peut être utilisée de deux manières :

  • -mtime +N trouve les fichiers modifiés plus de N il y a jours (pour plus de).
  • -mtime -N trouve les fichiers modifiés moins de N il y a quelques jours (moins de).

Par exemple, si vous saisissez +3 , il trouvera tous les fichiers du /home répertoire de plus de 3 jours.

find /home -type f -mtime +3

De même, si on veut retrouver tous les fichiers qui ont changé dans les dernières 24h :

find /home -type f -mtime -1

De la même manière, vous pouvez utiliser le -mmin N expression pour s'appuyer sur des minutes au lieu de jours.

Par exemple, cette commande trouve tous les fichiers de /home répertoire modifié en dernière minute.

find /home -type f -mmin -1

De plus, nous pouvons même composer des expressions. Voici comment trouver des fichiers sous Linux qui ont été modifiés il y a moins de 60 minutes et plus de 30 minutes :

find /home -type f -mmin -60 -mmin +30

Rechercher des fichiers par propriétaire

Pour rechercher des fichiers appartenant à un utilisateur ou à un groupe particulier, utilisez le -user et -group options.

Par exemple, pour rechercher des fichiers appartenant à l'utilisateur john dans le /home dossier du serveur :

find /home -type f -user john

Trouver tous les fichiers appartenant à un groupe appelé www-data dans le /home répertoire :

find /home -type f -group www-data

Rechercher des fichiers par autorisations

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

La commande ci-dessous trouvera les fichiers avec l'autorisation d'exactement 644 dans le répertoire actuel.

find /home -type f -perm 644

L'utilisation de - signifie "au moins ce niveau d'autorisation est défini, et toutes les autorisations supérieures."

find /home -type f -perm -644

Cet exemple affiche toutes les ressources dans /home répertoire avec au moins 644 autorisations. Cela signifie que les fichiers avec les autorisations telles que 777 , 745 , 666 , 655 , 654 , etc, correspondraient, tandis que les fichiers avec les permissions 642 , 611 , 600 , 544 , etc., ne correspondrait pas.

Rechercher des répertoires par nom

Tous les exemples que nous avons vus jusqu'à présent renvoient des fichiers. Cependant, si vous avez besoin de rechercher uniquement des répertoires, vous pouvez utiliser le -type d commutateur.

En d'autres termes, vous pouvez empêcher le find commande sous Linux de rechercher d'autres types de fichiers à l'exception des répertoires en utilisant -type d drapeau (d signifie répertoire).

Pour trouver un dossier nommé scripts dans le /home répertoire, exécutez :

find /home -type d -name scripts

De même, toutes les autres options affichées jusqu'à présent sont également applicables lors de la recherche de répertoires.

Pour en savoir plus sur la find commande sous Linux, consultez sa page de manuel.

Rechercher des fichiers et des répertoires sous Linux à l'aide de la commande locate

Tandis que find est sans aucun doute l'un des utilitaires de ligne de commande les plus populaires et les plus puissants pour la recherche de fichiers sous Linux, il n'est pas assez rapide pour les situations où vous avez besoin de résultats instantanés.

Le locate la commande est plus rapide que la find car elle utilise une base de données précédemment construite, alors que la commande find la commande recherche en temps réel, dans tous les répertoires et fichiers réels.

Si locate n'est pas installé, vous pouvez facilement l'installer à l'aide du gestionnaire de packages de votre distribution Linux.

Sur Ubuntu ou tout autre système basé sur Debian, saisissez la commande suivante :

sudo apt install mlocate

Si vous utilisez Fedora ou CentOS, utilisez plutôt cette commande :

sudo dnf install mlocate

Les utilisateurs d'Arch Linux doivent exécuter :

sudo pacman -S mlocate

Avant de locate peut être utilisé, la base de données devra être créée. Cela se fait avec updatedb commande, qui (comme son nom l'indique) met à jour la base de données.

sudo updatedb

La base de données sera mise à jour automatiquement quotidiennement, mais vous pouvez également la mettre à jour vous-même à tout moment afin d'obtenir des résultats à la minute près.

Rechercher des fichiers par nom

Le locate La commande est très facile à utiliser. Tout ce que vous avez à faire est de lui transmettre le nom du fichier que vous souhaitez rechercher.

locate report.pdf

Tout comme le find commande, locate est configuré pour traiter les requêtes en respectant la casse. Pour avoir locate commande ignorer la sensibilité à la casse et afficher les résultats pour les requêtes en majuscules et en minuscules, vous devez utiliser le -i option.

locate -i rEpoRT.pdf

Rechercher des fichiers par nom partiel

Si vous souhaitez rechercher tous les noms de fichiers contenant la chaîne .pdf en eux, alors vous pouvez le faire en utilisant locate de la manière suivante :

locate '*.pdf'

Limiter les résultats de recherche

Vous pouvez limiter vos résultats de recherche à un nombre requis pour éviter la redondance avec vos résultats de recherche en utilisant le -n option.

Par exemple, si vous ne voulez que 10 résultats de vos requêtes, vous pouvez saisir la commande suivante :

locate -n 10 '*.pdf'

Afficher le nombre d'entrées correspondantes

Pour compter le nombre d'occurrences d'un nom de fichier ou d'un modèle de recherche à l'aide de la commande de localisation, appelez -c comme indiqué.

locate -c '*.pdf'

Obtenir des informations sur la base de données de localisation

Pour recueillir plus d'informations sur la base de données de localisation mlocate.db que locate a catalogué, utilisez le -S choix :

locate -S
Database /var/lib/mlocate/mlocate.db:
	72376 directories
	1142596 files
	98622214 bytes in file names
	33950606 bytes used to store database

Juste au cas où vous en auriez besoin, voici la page de manuel pour locate commande.

Conclusion

Il existe deux utilitaires de recherche de fichiers les plus largement utilisés accessibles aux utilisateurs de Linux appelés find et locate . Les deux sont de bons moyens de trouver des fichiers sur votre système. C'est à vous de décider lequel de ces outils est approprié à chaque situation.

Cet article devrait vous donner une compréhension fondamentale de la façon de trouver des fichiers sur vos systèmes Linux. Même si les options étaient 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.


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

  2. Comment trouver les meilleurs répertoires et fichiers (espace disque) sous Linux

  3. Un moyen facile de masquer des fichiers et des répertoires sous Linux

  4. Trouvez les fichiers et répertoires les plus volumineux sous Linux

  5. Rechercher et copier des fichiers

Comment renommer des fichiers et des répertoires sous Linux

Commande Ls sous Linux (liste des fichiers et des répertoires)

Comment compresser des fichiers et des répertoires sous Linux

3 façons de trouver des fichiers et des répertoires sous Linux

Comment rechercher et supprimer des répertoires vides sous Linux

Trouvez facilement des fichiers et des répertoires sur Linux