Linux underground

find

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.

Exemples

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)

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 {} \;


Contact