Script bash: exclure le repertoire courant

Résolu
snow_frog Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   -  
snow_frog Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   -
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 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,
convert -trim $i $i.trim 2>/dev/null
0
snow_frog Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   139
 
merci bien.

==> résolu
0
(Pabix) Messages postés 578 Date d'inscription   Statut Membre Dernière intervention   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 216 Date d'inscription   Statut Membre Dernière intervention   139
 
merci de l'info,

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