Script bash: exclure le repertoire courant

[Résolu/Fermé]
Signaler
Messages postés
216
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 juin 2020
-
Messages postés
216
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 juin 2020
-
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 ?

4 réponses

Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 554
Salut,
convert -trim $i $i.trim 2>/dev/null
Messages postés
216
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 juin 2020
138
merci bien.

==> résolu
Messages postés
578
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
27 octobre 2009
82
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.
Messages postés
216
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 juin 2020
138
merci de l'info,

je testerai avec des noms de ficher contenant des espaces.