"…mais ce serait peut-être l'une des plus grandes opportunités manquées de notre époque si le logiciel libre ne libérait rien d'autre que du code…"

La commande shell ‘find’inetrafec

Publié par patrick le juillet 5, 2007

Voilà des exemples d’utilisation de la commande ‘find’ qui me sont bien utiles quand j’établis un "état des lieux" sur une application:

Rappel: La commande find est récursive, c’est à dire où que vous tapiez, elle va aller scruter dans les répertoires et les sous répertoires de chaque répertoire et ceci de façon récursive.

- http://en.wikipedia.org/wiki/Find ("The find program is a search utility, mostly found on Unix-like platforms. It searches through one or more directory tree(s) of a filesystem, locating files based on some user-specified criteria. By default, find returns all files below the current working directory. Further, find allows the user to specify an action to be taken on each matched file. Thus, it is an extremely powerful program for applying actions to many files. It also supports regexp matching.")

Ici cela s’applique à une application Java:

// Pour compter le nombre de lignes java
find . -name *.java -exec cat {} \; | wc -l

// Pour avoir la liste des fichiers java : ça c’est du classique
find . -name *.java -print

// Pour effacer tous les fichiers core situés sous mon répertoire :
find . -name core -exec rm {} \;

// pour avoir une demande de confirmation avant l’exécution de rm, vous pouvez taper :
find . -name core -ok rm {}\;

// Pour connaître les derniers fichiers modifiés dans les 3 derniers jours dans toute l’arborescence (/), vous devez taper :
find / -mtime 3 -print

// Pour connaître dans toute l’arborescence, les fichiers dont la taille dépasse 1Mo (2000 blocs de 512Ko), vous devez taper :
find / -size 2000 -print

// Vous pouvez chercher dans toute l’arborescence, les fichiers ordinaires appartenant à reza, dont la permission est fixée à 755, on obtient :
find / -type f -user reza -perm 755 -print

// rechercher dans le répertoire courant tous les fichiers normaux (sans les répertoires, fichiers spéciaux), et rechercher dans ces fichiers tous ceux contenant la chaîne toto.
find . -type f -print | xargs grep toto

// Exemple plus sophistiqué
find . -name *.java | xargs egrep -e "msg" | egrep -e "\".+\""| sort| uniq > aMsgJava.txt

// Recherche de la chaîne "DB" dans des programmes php
find . -name *.php -print | xargs grep DB

// supprimer des répertoires subversion .svn
find . -name ".svn" -exec chmod -R +w {} \;
find . -name ".svn" -exec rm -R {} \;

Liens:

Poster un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Connexion à %s

 
Suivre

Recevez les nouvelles publications par mail.

Joignez-vous à 35 followers

%d bloggers like this: