Utilisation de la commande find

Utilisation de la commande find

La fonction première de la commande find est de rechercher le fichier ou le répertoire. Cette commande offre les nombreux arguments pour différents attributs de fichiers et de répertoires.

Exemple:
find / -name *.profile  (permet d'obtenir la liste des fichiers .profile de tous les utilisateurs).
find / -perm 777  (permet d'obtenir la liste des fichiers ayant la permission 777).

chercher un texte dans plusieurs fichiers:

Si tous les fichiers sont dans le même répertoire:
grep montexte *
si les fichiers sont dans une arborescence :
find . -type f -exec grep montexte {} \;

Trier des fichiers selon une date

Exemple:
find /var/log/ -maxdepth 3 -name "*gz*" -ctime +5

"/var/log" : indique le répertoire ou nous allons chercher. Nous aurions aussi pu indiquer "." pour spécifier le répertoire où nous nous trouvons

"name "*tar*"" : Permet de nous afficher tous les fichiers qui possèdent "tar" dans leur nom. On s'aide des "*" qui nous permettent de dire "tout à partir du moment ou il y a tar".

"maxdepth 3" : permet d'indiquer que nous allons descendre dans les arborescences sur trois niveaux. Le trois à été choisi car on descend rarement plus de 3 niveaux dans les logs mais cela peut être plus où peut ne pas être indiqué pour descendre au maximum.

"ctime +5" : c'est l'option la plus intéressante, avec celle-ci nous n'affichons que les données dont la création est plus vieille que 5 jours

Avec cette dernière option, nous pouvons trier les fichiers selon la date, mais il existe d'autres options :

"ctime" pour "creation time" : permet de n'afficher que les fichiers dont la création est plus ou moins vieille que le nombre de jour donné.

"atime" pour "access time" : permet de n'afficher que les fichiers dont le dernier accès est plus ou moins vieux que le nombre de jour donné

"mtime" pour "modification time": permet de n'afficher que les fichiers dont la dernière modification est plus ou moins vieille que le nombre de jour donné

Sur ces trois options, nous pouvons spécifier un nombre de jours précédé d'un "+" pour "plus vieux que X jours" ou un "-" pour spécifier "moins vieux que".

Quelques exemples:
Pour lister les fichiers qui ont été modifiés il y a moins de trois jours :
find -mtime -3

Pour lister les fichiers qui ont été ouverts (lus) il y a plus de 20 jours :
find -atime +20

On peut bien entendu combiner l'une des trois options avec les autres options.