Utiliser la commande "find"

"find" est la commande utilisée pour la recherche dans une arborescence : quelques syntaxes types

, par clem

Chercher un nom de fichier ou répertoire dans une arborescence :

  1. find ./ -name '*le_nom_a_chercher*'

le caractère * est le jocker remplaçant n’importe quel caractère(s) : ici on cherche tous les fichiers ou dossiers contenant la chaîne de caractères le_nom_a_chercher

Limiter la profondeur de l’arborescence de recherche :

  1. find ./ -maxdepth 2 -name '*le_nom_a_chercher*'

ici on limite à 2 niveaux de l’arborescence la recherche : (le dossier courant ./ et ses sous-dossiers).

Préciser le type d’éléments recherchés :

  1. find ./ -type f -name '*le_nom_a_chercher*'
  • -type f : ne chercher que des fichiers
  • -type d : ne chercher que des répertoires

Exclure des répertoires/fichiers de la recherche :

  1. find . -not -path './cache*'

le paramètre -not -path ’cache*’ permet d’exclure un ensemble de fichiers/répertoires de la recherche (ici tous les dossiers/fichiers dont le nom commence par cache)

Chercher les fichiers modifiés dans les "n" dernières minutes :

  1. find . -mmin -60

le paramètre -mmin donne le nombre de minutes depuis lequel on veut trouver les fichiers modifiés

Exécuter une commande sur chaque fichier trouvé : option -exec

Par exemple déplacer dans un dossier poubelle tous les fichiers plus vieux que 60 jours trouvé dans le dossier $chemin :

  1. find $chemin -type f -mtime +60 -exec /bin/mv {} -t /home/poubelle \;

Références :