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 lafind
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 deN
il y a jours (pour plus de).-mtime -N
trouve les fichiers modifiés moins deN
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.