Script bash: exclure le repertoire courant
Résolu
snow_frog
Messages postés
214
Date d'inscription
Statut
Membre
Dernière intervention
-
snow_frog Messages postés 214 Date d'inscription Statut Membre Dernière intervention -
snow_frog Messages postés 214 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voilà un petit script qui permet d'automatiser diffèrentes retouches sur des images:
par contre le défaut, c'est que si je n'ai pas de fichier .jpg dans le repertoire courant, il
normal car il n'y a de .jpg dans le rep courant, mais comment faire pour ne pas afficher les lignes d'erreurs ? faut il envoyer le resultat dans /dev/null ? mais dans ce cas comment faire ?
voilà un petit script qui permet d'automatiser diffèrentes retouches sur des images:
#!/bin/bash DATA="*.jpg" for DIR in `find -type d`; do for FILE in $DIR/$DATA ; do for i in $FILE ; do convert -trim $i $i.trim done done done
par contre le défaut, c'est que si je n'ai pas de fichier .jpg dans le repertoire courant, il
convert: unable to open image `./*.jpg': No such file or directory. convert: missing an image filename `./*.jpg.trim'.
normal car il n'y a de .jpg dans le rep courant, mais comment faire pour ne pas afficher les lignes d'erreurs ? faut il envoyer le resultat dans /dev/null ? mais dans ce cas comment faire ?
Configuration: Linux Konqueror 3.5
4 réponses
-
Salut,
convert -trim $i $i.trim 2>/dev/null
-
merci bien.
==> résolu -
Bonjour, ton script n’est pas correct, si tu as des espaces dans les noms de fichiers, ça ne marchera jamais et ça peut être dangereux, voici ce que je te suggère :
#!/usr/bin/env bash find . -iname "*.jpg" | while read i ; do "$(dirname "$i)" != "." && convert -trim "$i" "$i.trim" done
PS. excuse le lien, mets entre double crochets ( [[ ) les instructions soulignées. -
merci de l'info,
je testerai avec des noms de ficher contenant des espaces.