Script bash: exclure le repertoire courant

Résolu
snow_frog Messages postés 220 Statut Membre -  
snow_frog Messages postés 220 Statut Membre -
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 ?
A voir également:

4 réponses

lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,
convert -trim $i $i.trim 2>/dev/null
0
snow_frog Messages postés 220 Statut Membre 139
 
merci bien.

==> résolu
0
(Pabix) Messages postés 600 Statut Membre 81
 
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
snow_frog Messages postés 220 Statut Membre 139
 
merci de l'info,

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