La commande Linux find est pratique pour rechercher des fichiers directement à partir de la ligne de commande. La commande de recherche reçoit des critères de recherche tels que les autorisations, la propriété, la modification, la taille, l'heure et la date, entre autres, pour localiser le fichier ou le répertoire en question.
La commande find est disponible par défaut dans toutes les distributions Linux, il n'est donc pas nécessaire d'installer des packages spéciaux pour l'utiliser. En raison de son importance, la commande find est une commande essentielle pour en savoir plus si vous souhaitez en savoir plus sur les navigations en ligne de commande sur n'importe quelle distribution Linux.
Nous mettrons en évidence certains des exemples de commandes de recherche et expliquerons les différentes options que vous pouvez utiliser.
Syntaxe
$ find location comparison-criteria search term
Liste des fichiers dans le répertoire courant
Pour répertorier tous les fichiers d'un répertoire, y compris les fichiers à l'intérieur des dossiers, exécutez la commande ci-dessous.
$ find .
Exemple de sortie
Rechercher des fichiers dans un répertoire spécifié
Si vous souhaitez rechercher tous les fichiers dans un répertoire donné, utilisez la commande find comme suit
$ find directory_name
Par exemple, pour rechercher tous les fichiers dans /boot, exécutez la commande
$ find /boot
Exemple de sortie
Rechercher des fichiers en utilisant le nom de fichier dans un répertoire spécifié
Si vous souhaitez spécifier les critères de recherche en utilisant le nom du fichier dans un répertoire, la syntaxe sera la suivante
$ find directory_name -name "file_name"
Par exemple, pour rechercher des fichiers Apache2 dans le répertoire /etc run
$ find /etc -name "apache2"
Sortie
Rechercher de manière récursive tous les fichiers avec une extension de fichier spécifiée
Si vous souhaitez rechercher des fichiers particuliers portant une extension spécifique, dans un répertoire donné, la syntaxe sera la suivante
$ find directory_name -name "*.extension"
Par exemple, pour rechercher tous les fichiers de configuration (.conf) dans le répertoire /etc, exécutez
$ find /etc -name "*.conf"
Exemple de sortie
Limiter la profondeur de recherche
Vous pouvez décider de limiter la profondeur de votre recherche de fichiers dans les répertoires. Par exemple, si vous souhaitez limiter votre recherche de fichiers au premier niveau du répertoire, la syntaxe sera
$ find directory_name -maxdepth 1 -name "*.conf"
Donc, si vous souhaitez limiter la recherche de fichiers au répertoire de premier niveau dans /etc pour les fichiers avec .conf
exécution de l'extension :
$ find /etc -maxdepth 1 -name "*.conf"
Exemple de sortie
Comme on le voit dans la sortie ci-dessus, la recherche de fichiers est limitée à /etc niveau répertoire. Si vous souhaitez effectuer une recherche plus intensive et approfondir d'autres répertoires dans /etc répertoire, augmentez le maxdepth valeur.
Par exemple, pour rechercher des fichiers avec .conf extension jusqu'à la 3ème exécution du répertoire
$ find /etc -maxdepth 3 -name "*.conf"
Exemple de sortie
Comme le montre la sortie ci-dessus, la recherche remonte jusqu'aux 2e et 3e répertoires.
Inverser les résultats de recherche
Vous pouvez également rechercher des fichiers qui ne répondent pas aux critères donnés avec la commande find. Ce mode est utile lorsque vous souhaitez éliminer les fichiers connus du modèle de recherche.
Pour ce faire, utilisez le -not -name
attribut comme indiqué
$ find /etc -maxdepth 1 -not -name "*.conf"
Exemple de sortie
La sortie ci-dessus imprime tous les fichiers qui n'ont pas le .conf extension de fichier.
Utiliser la recherche avec l'opérateur OR
Vous pouvez choisir de combiner les résultats de la recherche avec la recherche en utilisant l'opérateur OR qui est symbolisé par -o
drapeau illustré dans l'exemple ci-dessous
$ find /etc -maxdepth 3 -name "cron" -o -name "ssh"
Exemple de sortie
La commande ci-dessus recherche les fichiers portant le nom ssh OU cron dans le répertoire
Recherche de fichiers uniquement ou de répertoires uniquement
Si vous souhaitez rechercher uniquement des fichiers, utilisez le - type f
attribut comme indiqué dans l'exemple ci-dessous
$ find /etc -type f -name "ssh"
Exemple de sortie
Si vous souhaitez rechercher uniquement des répertoires, utilisez le - type d
comme indiqué dans l'exemple ci-dessous.
$ find /etc -type d -name "ssh"
Exemple de sortie
Rechercher des fichiers appartenant à un utilisateur particulier
Pour rechercher des fichiers appartenant à un utilisateur particulier dans un répertoire spécifique, utilisez la syntaxe :
$ find /path -user username
Par exemple, pour trouver des fichiers appartenant à l'utilisateur james dans /home
répertoire exécutez la commande ci-dessous
$ find /home -user james
Exemple de sortie
Rechercher des fichiers avec certaines autorisations de fichiers
Pour rechercher des fichiers avec des autorisations de fichiers spécifiques, utilisez la syntaxe ci-dessous
$ find /directory_name -type f -perm value
Par exemple, pour rechercher des fichiers avec les permissions 755 dans /etc répertoire, exécutez :
$ find /etc -type f -perm 755
Exemple de sortie
Rechercher des fichiers avec certaines tailles de fichiers ou une plage de fichiers
La commande de recherche Linux offre également aux utilisateurs la possibilité de rechercher des fichiers en fonction de leur taille.
Rechercher des fichiers de taille N
Par exemple, pour rechercher des fichiers de 10 ko, exécutez :
$ find /etc -type f -size 10k
Exemple de sortie
Pour rechercher des fichiers de plus de 10 Ko, exécutez
find /etc -type f -size +10k
Exemple de sortie
Pour rechercher des fichiers de moins de 10 ko, exécutez
find /etc -type f -size -10k
Exemple de sortie
Résumé
C'était un aperçu rapide des exemples de commandes de recherche Linux. Comme déjà montré, la recherche de fichiers et de répertoires sur la ligne de commande est très simple. Savoir comment la commande fonctionne est un outil essentiel pour tous les administrateurs système.
N'hésitez pas à essayer les exemples de commande de recherche ci-dessus et faites-nous savoir comment cela s'est passé.