Hallo,
wenn Du es unter Ubuntu machen möchtest, dann kannst Du das Kommando convert aus dem Paket imagemagick verwenden (letzteres musst Du evtl. mit "sudo apt-get install imagemagick" nachinstallieren, wenn es noch nicht vorhanden ist).
Ich nehme jetzt mal an, dass Du alle Bilder in einem Verzeichnis liegen hast, und dass dort nur die Bilder liegen und nichts anderes.
Jetzt kannst Du in der Shell eine einfache For-Schleife schreiben, die für jedes Bild convert aufruft und die Bildgröße ändert. Das kann z. B. so aussehen:
In der Shell in das Verzeichnis mit den Bildern wechseln, z. B. "cd /tmp/bilder/"
Ein Unterverzeichnis anlegen, das die kleineren Versionen enthalten wird: "mkdir klein"
Die Schleife. Das folgende muss alles in einer Zeile stehen:
for i in *.jpg; do convert $i -resize 800x600 klein/$i; done
Das war's. Die großen Bilder kannst Du anschließend löschen, wenn Du sie nicht mehr brauchst. Das Kommando setzt voraus, dass die Dateinamen der Bilder alle auf ".jpg" enden. Heißen sie z. B. ".JPG", musst Du das oben richtig eintragen. Einfach "*" schreiben geht auch, produziert aber eine Fehlermeldung, weil das Skript dann versucht, auch das Unterverzeichnis "klein" als Bild zu behandeln :)
Ein wichtiger Hinweis noch: Das funktioniert nur so, wenn die Ausgangsbilder alle im Querformat (z.B. 1280x1024) vorliegen. Wenn einige Hochkantbilder dabei sind, änderst Du die Angabe 800x600 hinter "-resize" in 800x800 -- das macht die Bilder nicht etwa quadratisch, sondern verkleinert sie formaterhaltend, so dass Breite und Länge maximal 800 px groß sind, also z.B. auf 800x600 und 600x800.