La commande Find

Recherche complexe de fichier find

La commande find permet de rechercher des fichiers au sein de l'arborescence du système de fichier, à de critère et la possibilité d'agir sur les résultats.

Syntaxe:

find REPERTOIRE [expression]

La comande find étant récurssive, il suffit d'indiquer un répertoire de base pour que toute l'arborescence depuis ce répertoire soit developper. L'option -print est l'option de base qui permet d'afficher les résultats à l'écran.

Exemple:

find /home/shado -print
Options : Option Description
-name Permet une selection par nom de fichier
-iname Idem que -name mais ignore la case (majuscule minuscule
-type permet une sélection par type de fichier

code fichier

Code fichier Description
b fichier spécial en mode bloc
c Fichier spécial en mode caractères
d Répertoire (directory)
f Fichier normal
l Lien symbolique
p pipe nommé (tube)
s Socket (sur certains Unix

Les options

Option Description
-user Permet la recherche sur le propriétaire
-group Permet la recherche sur le groupe
-gid Permet la recherche sur le groupe ID
-uid Permet la recherche avec l'uid

Exemple:

find -type f -user shado -group wallker -print

L'option -size permet de préciser la taille des fichiers recherchés.

Option Description
-size Recherche les fichiers d'une taille de 5 block (512 octet par block, soit ici 2560 octet)
-size 152c Recherche les fichers d'une taille de 512 caractères
-size 10K Recherche les fichers d'une taille de 10 Ko
-size 10M Recherche les fichers d'une taille de 10 Mo
-size 10G Recherche les fichers d'une taille de 10 Go
-size +/- 10M Si + recherche les fichers d'une taille de plus de 10 Mo si moins recherche les fichiers
de moins de 10Mo
-empty Recherche les fichers de taille nulle
-ls affiche les informations détaillées sur les fichiers
-size 10G exécute la commande situé juste après pour chaque occurence trouvée

Exemple :

find /tmp -type f -size +10M -print 
find . -type l -ls -exec rm -f {} \;
find / -type f -size +50M -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

Critère AND/OR/NOT

Critère Description
-a AND : ET logique
-o OR : OU logique
! NOT : Non logique (Négation)
(...) Groupement de combinaisons. Les parenthèse doivent être échappé \ (...\ )

Exemple : Recherche tout les fichier ne contenant pas fic.

find . ! -name "$fic" -print

Recherche tout les fichier n'étant ni normaux ni des répertoires.

find . ! \(-type f -o type d \) -ls