find : rechercher et bien plus ....
Table des matières
find est un outil de recherche disposant d'un grand nombre d'options. Cette commande peut également enchaîner des actions sur le résultat des recherches et utiliser des expressions régulières comme motifs de recherche
Pour rechercher un fichier, par son nom :
find <emplacement> -name "<nom fichier>" -print
Exemple :
Attention, le nom est sensible à la casse :
Pour pallier à cela, utiliser l'option -iname :
Si on ne connaît pas le nom exact du fichier, on peut donner une partie de son nom. Les jockers * (un ou plusieurs caractères) et ? (un caractère) sont utilisables :
L'option -type nous permet de chercher par type d'élément : f pour fichier, d pour répertoire.
Exemple : chercher les fichiers dont le nom contient sm
Exemple : chercher les répertoires dont le nom contient sm
L'option -size nous permet de chercher par la taille du fichier.
Exemple : chercher les fichiers de plus de 10Mo dans /usr/bin
L'option -atime nous permet de chercher par la dernière date d'accès du fichier.
Exemple : chercher les fichiers dans /var/log/samba qui ont été accédés il y a moins de 1 jour (donc aujourd'hui) :
Exemple : chercher les fichiers dans /var/log/samba qui ont été accédés il y a plus de 90 jours :
Exemple : chercher les fichiers dans /var/log/samba qui ont été accédés il y a exactement de 30 jours :
Introduction
find est un outil de recherche disposant d'un grand nombre d'options. Cette commande peut également enchaîner des actions sur le résultat des recherches et utiliser des expressions régulières comme motifs de recherche
Utilisation
Utilisation de base
Pour rechercher un fichier, par son nom :
find <emplacement> -name "<nom fichier>" -print
Exemple :
Code BASH :
adrien@linux: / $ find /usr -name "trash.svg" -print /usr/share/themes/adriend-light/cinnamon/trash.svg
Attention, le nom est sensible à la casse :
Code BASH :
adrien@linux: / $ find /usr -name "TRASH.svg" -print adrien@linux: / $
Pour pallier à cela, utiliser l'option -iname :
Code BASH :
adrien@linux: / $ find /usr -iname "TRASH.svg" -print /usr/share/themes/adriend-light/cinnamon/trash.svg
Si on ne connaît pas le nom exact du fichier, on peut donner une partie de son nom. Les jockers * (un ou plusieurs caractères) et ? (un caractère) sont utilisables :
Code BASH :
adrien@linux: / $ find /usr -iname "tra?h.*" -print /usr/share/gvfs/mounts/trash.mount /usr/share/themes/adriend-light/cinnamon/trash.svg /usr/share/cinnamon-control-center/sounds/trash.oga
Utilisation poussée
Recherche par type de « fichier »
L'option -type nous permet de chercher par type d'élément : f pour fichier, d pour répertoire.
Exemple : chercher les fichiers dont le nom contient sm
Code BASH :
root@linux: # find /var/log/ -type f -name "*sm*" /var/log/samba/log.smbd /var/log/samba/smbd.log /var/log/samba/old/log.smbd-20140223 /var/log/samba/old/smbd.log-20140303 /var/log/samba/old/log.smbd-20140316 /var/log/samba/old/log.smbd-20140309 /var/log/samba/old/log.smbd-20140303 /var/log/samba/old/smbd.log-20140309 /var/log/samba/old/smbd.log-20140316 /var/log/samba/old/smbd.log-20140223
Exemple : chercher les répertoires dont le nom contient sm
Code BASH :
root@linux: # find /var/log/ -type d -name "*sm*" /var/log/samba/cores/smbd
Recherche par taille
L'option -size nous permet de chercher par la taille du fichier.
Exemple : chercher les fichiers de plus de 10Mo dans /usr/bin
Code BASH :
find /usr/bin -size +10M /usr/bin/fgfs /usr/bin/inkscape /usr/bin/clementine
Recherche par date d'accès
L'option -atime nous permet de chercher par la dernière date d'accès du fichier.
Exemple : chercher les fichiers dans /var/log/samba qui ont été accédés il y a moins de 1 jour (donc aujourd'hui) :
Code BASH :
root@linux: ~ # find /var/log/samba/ -atime -1 /var/log/samba/ /var/log/samba/10.6.0.38.log /var/log/samba/10.5.26.125.log /var/log/samba/cores /var/log/samba/cores/smbd /var/log/samba/cores/nmbd /var/log/samba/10.5.150.125.log /var/log/samba/10.5.2.213.log /var/log/samba/10.5.0.125.log /var/log/samba/old /var/log/samba/pc-02-13.log
Exemple : chercher les fichiers dans /var/log/samba qui ont été accédés il y a plus de 90 jours :
Code BASH :
root@linux: ~ # find /var/log/samba/ -atime +90 /var/log/samba/192.168.1.30.log /var/log/samba/calvin.log /var/log/samba/192.168.1.27.log /var/log/samba/10.6.0.36.log /var/log/samba/log.127.0.0.1 /var/log/samba/adrien-xp.log /var/log/samba/10.5.0.14.log /var/log/samba/pcportable.log /var/log/samba/10.5.0.25.log /var/log/samba/sim.log
Exemple : chercher les fichiers dans /var/log/samba qui ont été accédés il y a exactement de 30 jours :
Code BASH :
root@linux: ~ # find /var/log/samba/ -atime 30 /var/log/samba/liberto.log /var/log/samba/10.5.0.10.log