![]() |
Linux underground |
Utilisée seule, cette commande aura une utilité relativement limitée. Par contre, utilisée en combinaison avec d'autres commandes (avec la technique du pipeline ou avec l'opion -exec), find fera des miracles.
Lister tous les fichiers .pps et .ppt de l'arborescence
(équivalent de dir *.pps /s + dir *.ppt /s sous Windows) :
$ find $HOME -name "*.pp[st]"
Rechercher dans l'arborescence courante, dans les fichiers .c, ceux contenant le mot clé malloc :
$ find . -name "*.c" | xargs grep -n malloc
(le "." n'est pas obligatoire, le chemin par défaut est le chemin courant)
Si on ne doit pas filtrer des noms de fichiers, on pourra utiliser la commande
grep seule. Par exemple, ici, trouver toutes les occurrences de l'option "-s"
dans tous les fichiers de l'arborescence :
$ grep -R "\-s" .
Lister les fichiers et répertoires plus vieux que 15 jours :
$ find . -type f -ctime +15
$ find . -type d -ctime +15
Lister une arborescence portage (ou un overlay) :
$ cd /usr/portage
$ find . -mindepth 2 -maxdepth 2 -type d | cut -c 3-
Effacer tous les fichiers plus vieux que 15 jours :
$ find mon_repertoire/ -ctime +15 -exec rm -rf {} \;
Lister les fichiers et répertoires accessibles en écriture par tout le monde
("world writeable") :
$ find . -type f -perm -2 -exec ls -lg {} \; 2> /dev/null > writable.txt
$ find . -type d -perm -2 -exec ls -ldg {} \; 2> /dev/null >> writable.txt
$ find . -type f -perm /o+w -exec ls -lg {} \; 2> /dev/null > writable.txt
$ find . -type d -perm /o+w -exec ls -ldg {} \; 2> /dev/null >> writable.txt
Lister les fichiers et répertoires accessibles en écriture par le groupe
et les autres :
$ find . -type f \( -perm -2 -a -perm -20 \) -exec ls -lg {} \; 2> /dev/null > writable.txt
$ find . -type d \( -perm -2 -a -perm -20 \) -exec ls -ldg {} \; 2> /dev/null >> writable.txt
$ find . -type f -perm -g+w,o+w -exec ls -lg {} \; 2> /dev/null > writable.txt
$ find . -type d -perm -g+w,o+w -exec ls -ldg {} \; 2> /dev/null >> writable.txt
Lister les fichiers et répertoires accessibles en écriture par le groupe
ou par les autres :
$ find . -type f \( -perm -2 -o -perm -20 \) -exec ls -lg {} \; 2> /dev/null > writable.txt
$ find . -type d \( -perm -2 -o -perm -20 \) -exec ls -ldg {} \; 2> /dev/null >> writable.txt
$ find . -type f -perm /g+w,o+w -exec ls -lg {} \; 2> /dev/null > writable.txt
$ find . -type d -perm /g+w,o+w -exec ls -ldg {} \; 2> /dev/null >> writable.txt
Modifier les droits d'accès des fichiers et répertoires récursivement :
$ find . -type f -exec chmod u=r,g=r,o-rwx {} \;
$ find . -type d -exec chmod u=rx,g=rx,o-rwx {} \;