Bon alors j'ai essayé en me basant sur la ligne de g-script, et ça à l'air de fonctionner. On peut sélectionner un ou plusieurs fichiers et/ou un ou plusieurs dossiers, quelque soit leur nom.
#!/bin/bash
commande="mogrify -modulate 100,120,105"
p=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
f="$(echo -e "$p" | awk 'BEGIN {FS = "\n" } { printf "\"%s\" ", $1 }' | sed -e s#\"\"##)"
zenity --question --title "Attention" --text "Les fichiers suivants seront modifiés : \n $p \n (Tous les JPG contenus dans les dossiers sélectionnés seront modifiés)"
if [ "$?" != "1" ]
then
echo 'for i in '"$f"'
do
if ( test -d "$i" )
then
find "$i" \( -iname "*.jpg" -o -iname "*.jpeg" \) -exec '$commande' {} ";"
else
'$commande' "$i"
fi
done' >/tmp/mfytmp && sh /tmp/mfytmp
fi
Pour chaque "chemin", si c'est un dossier on applique le find pour traiter toutes les jpg de celui-ci, si c'est un fichier on applique directement la commande
Apparement il faut indiquer #!/bin/bash et non #!/bin/sh sinon quelque chose semble mal être interprété.
Il faudrait peut-être ajouter une condition pour vérifier que les fichiers sélectionner sont bien des jpg, mais bon.