[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bilder-Batch



Hallo,

Am Mit, 26 Aug 2009, Wolfgang Freitag-Friedl schrieb:
>Ich möchte mein Photo-Verzeichnis (mit Unterverzeichnis) so "sichern",
>dass ich Bilder in Bildschirmauflösung speichere), also Backup in
>konvertierter Form *
>
>Ich dachte, wenn ich
>* die Ordnerstruktur dupliziere
>* Dateiliste in ein File einlese:
> find -name *jpg | cat >> /tmp/test
                  ^^^^^^^^ Weia. Das ist mal ein kreativer "Useless
                  use of cat".

>* for i in $(cat < /tmp/test); do convert  -quality 85 -resample 96x96
           ^^^^^^^^^^^^^^^^^^^^

Hier zerbröselt's dir schon. Besser ist bei sowas:

while read file; do
    ...
done < Datei

>-resize 1024x768 "$i" "/dev/shm/testuser/$(dirname $i)/$(basename $i)" ;
>done;                                              ^^             ^^

und da wieder. Und wieso hier überhaupt dirname/basename?

find . -name '*.jpg' -print0 | while read -r -0 file; do
    convert -quality 85 -resample 96x96 -resize 1024x768 \
        "$file" "/dev/shm/testuser/${file%\/*}/${1##*\/}"
done

Oder wenn mit dirname/basename dann muß 
    "/dev/shm/testuser/$(dirname "$file")/$(basename "$file")"
verwendet werden. Auch "innen" muß unbedingt gequoted werden. Wenn man
Backticks `` statt $() verwendet muß man die inneren "" übrigens auch
noch escapen: "$(basename \"$file\")".

HTH,
-dnh

-- 
I swear that this abortion combines the worst screwups in NT, Win2K &
Windows 98, all rolled into one, then splashed with one of the most
nauseating GUIs[2] it's even been my misfortune to be required not to
puke on.                            -- Lionel on "Windows XP", in asr


Reply to: