Re: Bilder-Batch
David Haller schrieb am 28.08.2009 04:01 ---¦
>> (Die Variante mit ${file%\/*}/${1##*\/}" hat übrigens nicht geklappt)
>
> Da hab ich auch gepennt. Muß natürlich ${file%\/*}/${file##*\/} sein.
> Aber wenn du eh beides verwendest ist das komplett überflüssig und du
> kannst direkt den kompletten Dateinamen verwenden (unten das "$1" in
> "${thumbdir}/$1").
>
> So müßte es klappen:
>
> find . \( -iname '*.jpg' -o -iname '*.jpeg' \) -exec sh -x -c '
> thumbdir="/dev/shm/testuser"
> echo "$1 -> ${thumbdir}/$1";
> dir="$(dirname "${thumbdir}/$1")";
> test -d "$dir" || mkdir -p "$dir";
> convert -quality 85 -resample 96x96 -resize 1024x768 \
> "$1" "${thumbdir}/$1"
> ' find-sh {} \;
Klappt prima! (Anm. mich wunder, dass ich in der ersten Zeile nicht"-or"
statt "-o" schreiben muss); hätte gedacht, dass "-o" ein "entweder-oder"
darstellt)
>
> Statt dem -exec sh -c '..' kannst du den Konvertierungskram in ein
> extra-script schreiben und das dann aufrufen.
>
> Ich gehe dabei davon aus, daß convert die Laufzeit des Scripts
> dominiert, ansonsten könnte man auch das innere Script so umbauen, daß
> es mehrere Dateinamen verarbeiten kann.
>
> find ... -exec sh -c '
> thumbdir=...
> for file; do
> echo "$file -> ...";
> ...
> convert ... "$file" "${thumbdir}/${file}"
> done
> ' find-sh {} \+
>
>> ? kann ich find auch noch eine Art "oder" mitgeben bzw. etwas, damit
>> auch *jpeg gefunden wird?
>> find . -name '*.jp[e]g'
>
> Ungetestet:
>
> -regex '.*\.jpe?g'
>
> Oder siehe oben.
>
> -dnh
>
Den Rest habe ich nicht versucht - never change a running script :-)
Vielen Dank, David & ich hoffe, dass nicht mein Mail Grund für eine
schlaflose Nacht war!
--
###
# #
# #
wolfgang
# #
# #freitag-friedl
Reply to: