Outils pour utilisateurs

Outils du site


Panneau latéral

linux:find (lu 59933 fois)

Ceci est une ancienne révision du document !


Find

Utilisation de la commande find

La commande find permet de chercher des fichiers, et eventuellement d’éxecuter une action dessus. Par exemple :

find . -print | less

affiche la liste de tous les fichiers du répertoire courant (l’option -print est normalement incluse par défaut). On peut rediriger les messages d’erreur vers le trou noir (le périphérique /dev/null) :

find . -print 2> /dev/null | less

ou les inclures (on rassemble alors en un seul canal la sortie standard et le sortie d’erreur standard) :

find . -print 2>&1 liste | less

Les options de la commande find sont nombreuses.

Option Signification
-name Recherche par nom de fichier.
-type Recherche par type de fichier.
-user Recherche par propriétaire.
-group Recherche par appartenance à un groupe.
-size Recherche par taille de fichier.
-atime Recherche par date de dernier accès.
-mtime Recherche par date de dernière modification.
-ctime Recherche par date de création.
-perm Recherche par autorisations d’accès.
-links Recherche par nombre de liens au fichier.

Pour les options -size, -atime, -mtime, -ctime et -links, il faut spécifier une valeur, précédée par le signe ``+ pour ``supérieur à, ``- pour ``inférieur à, ou rien pour ``égal à. Par exemple : find . -mtime -3 -print affiche les fichiers dont les dernières modifications remontent à moins de 3 jours (donc tous les fichiers modifiés entre aujourd’hui et il y a trois jours seront affichés). De même, +5 afficherait les fichiers dont les dernières modifications remontent à plus de 5 jours. Voici d’autres exemples d’utilisation de la commande find : Pour afficher tous les fichiers se terminant par ``.c :

find . -name ".c" -print

Pour afficher tous les répertoires dont le nom se termine par ``s : find . -type d -name “*s” -print Pour afficher tous les fichiers, on aurait utilisé le code f. Pour afficher tous les fichiers ayant une taille de 10 blocs9.1 : find . -size 10 -print ce qui est équivalent à demander la liste des fichiers ayant une taille de 5120 caractères : find . -size 5210c -print On aurait pu aussi demander la liste des fichiers ayant une taille supérieure (+200k) ou inférieure (-200k) à 200 Ko. Pour afficher tous les fichiers ayant une certaine permission exprimée en octale (voir section 1.9.6 page [*]) : find . -perm 755 -print ou ayant au minimum les droits d’écriture pour le groupe : find . -perm -020 -print Pour éxecuter la commande ls -l pour chaque fichier trouvé : find . -type f -exec ls -l {} \; et pour demander confirmation avant chaque action : find . -type f -ok -exec rm {} \; Toute autre commande peut être éxecutée avec l’option -exec. Pour associer plusieurs critères avec -a pour et, -o pour ou, ! pour négation. Par exemple : find . ! -user root -print affiche tous les fichiers n’appartenant à root, et find . \( -name ‘*.tex’ -o -name ‘*.dvi’ \) -print affiche tous les fichiers se terminant par ``.tex ou ``.dvi’’.

linux/find.1372081828.txt.gz · Dernière modification: 24-06-2013 15:50 de edmc73