On Sat, Jan 22, 2011 at 02:12:04PM +0100, Jeremie COURREGES-ANGLAS wrote: > On Friday 21 January 2011 à 08:16:15AM, Fabien LUCE wrote: > > Bonjour à tous! > > > > > > 2 petites questions à propos de la commande find. > > > > 1) pourquoi find / -name "*test*" -mtime +7 -print0 ne se comporte pas > > comme find / -print0 -name "*test*" -mtime +7 ? En d'autres termes: le > > paramètre d'action print0 doit il toujours etre à la fin de la commande? Si > > oui, pourquoi? > > 2) comment puis-je écrire: liste_fichier=$(find / -name "*test*" -mtime +7) > > sans être embêté par les noms de fichiers comprenant des espaces? le print0 > > est pas mal mais sans xargs derrière j'ai l'impression que c'est inutile... > > > > Merci, à bientôt! > > Comme celà a été dit, il vaut mieux mettre -print0 à la fin des arguments > passés à find. A part ça : > * tu as parfaitement raison, on ne devrait jamais utiliser xargs sans -0 j'ai du le dire entre les lignes sans faire exprès car ce n'est pas ce que je pensais exprimer ;)
> * find a un xargs "builtin". Je m'explique : > > $ find /foo -type f -bla -bla -exec ma commande {} \; > > va exécuter "ma commande" pour chaque fichier trouvé. A noter qu'il n'y a pas > de souci à se faire avec les noms de fichiers exotiques. > > $ find /foo -type f -bla -bla -exec ma commande {} + cela va executer la commande pour l'ensemble des fichiers si je comprend bien? > > va lancer "ma commande" en lui passant un maximum de chemins en paramètre > (comme xargs), toujours de manière sûre (quoiqu'on puisse préférer -execdir). > En bonus, cette possibilité (le -exec ... +) est censé être standard. > > S'il te plaît, ne cherches pas à mettre la sortie de find dans un tableau, > si à jouer avec l'IFS et faire des trucs genre : > $ for fichier in $liste_fichiers; do echo $fichier; done > > Par contre, si tu n'as pas besoin d'un traitement récursif, ton shell suffit, > pas besoin de find, juste de bash : > > for fichier in ./*.[jJ][pP][gG]; do > [[ -f "$fichier" ]] || continue > if [[ "$fichier" = *.jpg ]]; then > echo "OK, fichier .jpg : $fichier" > else > echo mv "$fichier" "${fichier%.???}.jpg" > fi > done > > My two cents > -- > "Free software, free society." > Jérémie Courrèges-Anglas > GPG key : 06A11494 -- Fabien LUCE Jabber ID: f...@lutix.org Identi.ca: http://identi.ca/ftg Web: www.lutix.org -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers debian-user-french-requ...@lists.debian.org En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org Archive: http://lists.debian.org/20110122143943.gp7...@serveur.lutix.org