Script bash: exclure le repertoire courant

Résolu
Bonjour,

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

  1. Modérateur
    Salut,
    convert -trim $i $i.trim 2>/dev/null
    0
    1. merci bien.

      ==> résolu
      0
      1. 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.
        0
        1. merci de l'info,

          je testerai avec des noms de ficher contenant des espaces.
          0