Le Linux find
La commande est l’une des commandes les plus importantes et les plus pratiques des systèmes Linux. Il peut, comme son nom l’indique, trouver des fichiers sur votre PC Linux en fonction de pratiquement toutes les conditions et variables que vous définissez. Vous pouvez rechercher des fichiers par autorisations, utilisateurs, groupes, type de fichier, date, taille et autres critères possibles en utilisant le find
commander. Ici, nous vous montrons comment trouver un fichier sous Linux en utilisant le find
commander.
Le find
est disponible par défaut sur la plupart des distributions Linux, vous n’avez donc pas besoin d’installer de package pour cela.
Rechercher des fichiers par nom dans les répertoires actuels
Le moyen le plus évident de rechercher des fichiers est par nom. Pour rechercher un fichier par son nom dans le répertoire courant, exécutez :
find . -name photo.png
Si vous souhaitez rechercher un fichier par nom contenant à la fois des majuscules et des minuscules, exécutez :
find . -iname photo.png

Si vous voulez trouver un fichier dans le répertoire racine, préfixez votre recherche avec sudo
, qui vous donnera toutes les autorisations nécessaires pour le faire, ainsi que le /
symbole, qui indique à Linux de rechercher dans le répertoire racine. Finalement, le -print
expression affiche les répertoires de vos résultats de recherche. Si vous cherchiez Gzip, vous taperez :
sudo find / -name gzip -print

Rechercher des fichiers dans un répertoire spécifique
Si vous souhaitez rechercher des fichiers dans un répertoire spécifique tel que “/home”, exécutez :
find /home -name filename.txt

Si vous voulez trouver des fichiers avec l’extension “.txt” sous le répertoire “/home”, exécutez :
find /home -name "*.txt"

Pour rechercher des fichiers dont le nom est « test.txt » dans plusieurs répertoires tels que « /home » et « /opt », exécutez :
find /home /opt -name test.txt
Pour trouver les fichiers cachés dans le répertoire “/home”, exécutez :
find /home -name ".*"
Pour trouver un seul fichier appelé « test.txt » et le supprimer, exécutez :
find /home -type f -name test.txt -exec rm -f {}
Pour trouver tous les fichiers vides dans le répertoire “/opt”, exécutez :
find /opt -type f -empty
Rechercher des répertoires à l’aide du nom
Si vous voulez trouver tous les répertoires dont le nom est « testdir » sous le répertoire « /home », exécutez :
find /home -type d -name testdir
Pour classer tous les répertoires vides sous “/home”, exécutez :
find /home -type d -empty
Rechercher des fichiers avec certaines autorisations
Le find
La commande peut être utilisée pour rechercher des fichiers avec une autorisation spécifique à l’aide de la perm
option.
Pour rechercher tous les fichiers dont les autorisations sont « 777 » dans le répertoire « /home », exécutez :
find /home -type f -perm 0777 -print
Pour trouver tous les fichiers sans l’autorisation « 777 », exécutez :
find . -type f ! -perm 777
Pour rechercher tous les fichiers en lecture seule, exécutez :
find /home -perm /u=r
Pour trouver tous les fichiers exécutables, exécutez :
find /home -perm /a=x
Pour trouver tous les fichiers d’ensemble de bits persistants dont les autorisations sont « 553 », exécutez :
find /home -perm 1553
Pour rechercher tous les fichiers d’ensemble SUID, exécutez :
find /home -perm /u=s
Pour rechercher tous les fichiers dont les autorisations sont « 777 » et modifier leurs autorisations en « 700 », exécutez :
find /home -type f -perm 0777 -print -exec chmod 700 {} ;
Rechercher des fichiers et des répertoires en fonction de la date et de l’heure
Pour trouver tous les fichiers sous “/opt” qui ont été modifiés 20 jours plus tôt, exécutez :
find /opt -mtime 20
Pour trouver tous les fichiers sous “/opt” qui ont été consultés vingt jours plus tôt, exécutez :
find /opt -atime 20
Pour retrouver tous les fichiers sous « /opt » qui ont été modifiés plus de 30 jours avant et moins de 50 jours après :
find /opt -mtime +30 -mtime -50
Pour trouver tous les fichiers sous “/opt” qui ont été modifiés au cours des deux dernières heures, exécutez :
find /opt -cmin -120
Rechercher des fichiers et des répertoires en fonction de la taille
Pour trouver tous les fichiers de 10 Mo sous le répertoire “/home”, exécutez :
find /home -size 10M
Pour trouver tous les fichiers sous le répertoire “/home” qui sont supérieurs à 10 Mo et inférieurs à 50 Mo, exécutez :
find /home -size +10M -size -50M
Pour rechercher tous les fichiers « .mp4 » sous le répertoire « /home » de plus de 10 Mo et les supprimer à l’aide d’une seule commande, exécutez :
find /home -type f -name *.mp4 -size +10M -exec rm {} ;
Comme vous pouvez le voir, le find
La commande est incroyablement utile pour administrer un système, parcourir les répertoires pour trouver des fichiers et généralement élaguer l’arborescence des répertoires virtuels sous Linux. Si vous avez apprécié cet article Linux, assurez-vous de consulter certains de nos autres contenus Linux, comme comment utiliser la commande scp pour transférer des fichiers en toute sécurité, comment utiliser nnn comme gestionnaire de fichiers dans le terminal et comment réparer les packages cassés.