bash

Rechercher un fichier sous GNU-Linux, la commande FIND, et autre

Il peut faire peur (find), alors que l'outil est fantastique, et finalement assez simple !

De base sous GNU/Linux, vous disposez de plusieurs outils pour retrouver des fichiers ou programmes. On connait "whereis" qui permet de trouver l'emplacement d'un programme, son source si présent, et le manuel associé, par exemple :

[bash]whereis whois[/bash]

Mais ceci ne permet pas de chercher des fichiers spécifiques. Vous disposez ensuite de "locate" qui permet de chercher dans la liste des fichiers indexés par "updatedb" (mlocate), dont les chemins sont configurés généralement dans /etc/updatedb.conf, exemple :

[bash]locate mon_fichier.txt[/bash]

Si des fichiers contenant la chaine dans leurs noms sont indéxés alors ils apparaîtront. Si vous voulez effectuer la recherche sur la base la plus récente possible, il suffit de mettre à jour en lançant la commande à la main :
[bash]sudo updatedb[/bash]
(peut prendre du temps si votre disque contient beaucoup de fichiers !)

Mais revenons au sujet qui nous interesse, la commande find. Jusqu'ici  nous avons vu des outils de recherche limités, ou conditionné par une indexation. La commande find permet de lancer une recherche n'importe où, plus ou moins approfondie.

Par exemple, je veux chercher dans le dossier courant tous les fichiers et dossiers contenant "tableau", voici la commande :
[bash]find ./ -name ‘*tableau*'[/bash]
Voilà qui est fait !

Si je ne suis pas dans le dossier qui m'interesse, je peux aussi lancer la recherche comme ceci :
[bash]find /home/user/ -name ‘*tableau*'[/bash]

Très simple non ?
Allons un peu plus loin, je veux maintenant chercher tous les fichiers finissant par .php qui contiennent la chaine "Content-Transfer-Encoding: 8bit" :
[bash]find ./ -name ‘*.php’|xargs grep "Content-Transfer-Encoding: 8bit"[/bash]

Ca peut être très utile !

Autre exemple avec find et la commande associée, je souhaite trouver tous les dossiers vides, et les supprimer :
[bash]find ./ -depth -type d -empty -exec rmdir {} \;[/bash]
ou simplement chercher tous les dossiers vides (ici dans le home de user) :
[bash]find /home/user/ -empty -type d[/bash]

Autre possibilité, trouver les fichiers uniquement contenus dans un seul et même dossier, et n'afficher QUE le nom du fichier sans les "slash" autour :
[bash]find /home/user/dossier/ -maxdepth 1 -type f -exec /bin/basename {} \;[/bash]

On va finir ce post avec deux autres exemples bien utiles à mon sens, dabord compter le nombre de fichiers dans une arborescence en combinant la commande avec wc:
[bash]find ./ -type f|wc -l[/bash]
et enfin, la possibilité de chercher par date, avec par exemple, tous les fichiers modifiés il y a 2 jours :
[bash]find /home/user/ -mtime 2 -type f[/bash]
ou tous mes fichiers modifiés ce jour :
[bash]find $HOME -mtime 0[/bash]

Voilààà! pour plus d'info : man find
En espérant que ça puisse vous être utile.

Loading

Tags: , , , , , , , ,

samedi, octobre 9th, 2010 GNU - Linux, Technologie 2 Comments

Publier du code source dans un post wordpress – plugin

Si vous souhaitez publier du code source dans vos articles wordpress, il y a un plugin très bien fait pour ça (utilisé dans le post précédent), que vous trouverez ici :

http://wordpress.org/extend/plugins/syntaxhighlighter/

Je suis arrivé la dessus en lisant cette documentation wordpress :

http://en.support.wordpress.com/code/posting-source-code/

Après installation du code source, il suffit d'encapsuler le code avec une balise contenant le langage approprié comme expliqué ici :

http://wordpress.org/extend/plugins/syntaxhighlighter/installation/

C'est un post court, mais j'ai mis un peu de temps à trouver ça et je pense que ça pourra être utile :D

Exemple :

[php]//Ceci est un bout de code php
echo "coucou c’est un test";
[/php]

Voila :D

Loading

Tags: , , , , ,

lundi, octobre 4th, 2010 Technologie Aucun commentaire