Comment trouver un fichier dans Linux en utilisant la commande Find

Fonction de recherche

La commande find de Linux est l’une des commandes les plus importantes et pratiques dans les systèmes Linux. Elle peut, comme son nom l’indique, trouver des fichiers sur votre PC Linux en fonction de presque toutes les conditions et variables que vous définissez. Vous pouvez trouver des fichiers par permissions, utilisateurs, groupes, type de fichier, date, taille et d’autres critères possibles en utilisant la commande find. Ici, nous vous montrons comment trouver un fichier dans Linux en utilisant la commande find.

La commande find est disponible par défaut sur la plupart des distributions Linux, donc vous n’avez pas besoin d’installer un paquet pour cela.

Lisez aussi : Utiliser les commandes find, locate, which et whereis pour rechercher des fichiers dans Linux

Trouver des fichiers par nom dans les répertoires actuels

La façon la plus évidente de rechercher des fichiers est par nom. Pour trouver un fichier par nom dans le répertoire actuel, exécutez :

find . -name photo.png

Trouver Photo

Si vous voulez trouver un fichier par nom qui contient à la fois des lettres majuscules et minuscules, exécutez :

find . -iname photo.png

Trouver Iname Photo

Si vous voulez trouver un fichier dans le répertoire racine, préfixez votre recherche avec sudo, ce qui vous donnera toutes les permissions nécessaires pour le faire, et aussi le symbole /, qui indique à Linux de rechercher dans le répertoire racine. Enfin, l’expression -print affiche les répertoires de vos résultats de recherche. Si vous cherchiez Gzip, vous taperiez :

sudofind/-namegzip-print

Trouver Gzip

Lisez aussi : Comment trouver des fichiers volumineux dans Linux

Trouver des fichiers sous un répertoire spécifique

Si vous voulez trouver des fichiers sous un répertoire spécifique comme “/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 trouver des fichiers dont le nom est “test.txt” sous plusieurs répertoires comme “/home” et “/opt”, exécutez :

find/home /opt -name test.txt

Pour trouver des fichiers cachés dans le répertoire “/home,” exécutez :

find/home -name".*"

Pour trouver un fichier unique appelé “test.txt” et le supprimer, exécutez :

find/home -type f -name test.txt -execrm-f{}

Pour trouver tous les fichiers vides sous le répertoire “/opt,” exécutez :

find/opt -type f -empty

Trouver des répertoires par 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 trouver tous les répertoires vides sous “/home,” exécutez :

find/home -type d -empty

Trouver des fichiers avec certaines permissions

La commande find peut être utilisée pour trouver des fichiers avec une permission spécifique en utilisant l’option perm.

Pour trouver tous les fichiers dont les permissions sont “777” dans le répertoire “/home,” exécutez :

find/home -type f -perm 0777 -print

Pour trouver tous les fichiers sans permission “777,” exécutez :

find . -type f !-perm777

Pour trouver 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 avec le bit collant défini dont les permissions sont “553,” exécutez :

find/home -perm1553

Pour trouver tous les fichiers SUID définis, exécutez :

find/home -perm/u=s

Pour trouver tous les fichiers dont les permissions sont “777” et changer leurs permissions en “700,” exécutez :

find/home -type f -perm 0777 -print-execchmod700{} ;

Trouver des fichiers et répertoires en fonction de la date et de l’heure

Pour trouver tous les fichiers sous “/opt” qui ont été modifiés il y a 20 jours, exécutez :

find/opt -mtime20

Pour trouver tous les fichiers sous “/opt” qui ont été accédés il y a vingt jours, exécutez :

find/opt -atime20

Pour trouver tous les fichiers sous “/opt” qui ont été modifiés il y a plus de 30 jours et moins de 50 jours après :

find/opt -mtime +30-mtime-50

Pour trouver tous les fichiers sous “/opt” qui ont été changés dans les deux dernières heures, exécutez :

find/opt -cmin-120

Trouver des fichiers et 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 trouver tous les fichiers “.mp4” sous le répertoire “/home” de plus de 10 Mo et les supprimer en utilisant une seule commande, exécutez :

find/home -type f -name*.mp4 -size +10M -execrm{} ;

Comme vous pouvez le voir, la commande find est incroyablement utile pour administrer un système, parcourir les répertoires pour trouver des fichiers, et généralement élaguer l’arbre de répertoires virtuel dans Linux. Si vous avez apprécié cet article sur Linux, assurez-vous de consulter certains de nos autres contenus sur 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 des paquets cassés.