How to get pngcrush to overwrite original files?
Since version 1.7.22, pngcrush
has an overwrite option.
Try
pngcrush -ow file.png
See Changelog for more information:
Version 1.7.22 (built with libpng-1.5.6 and zlib-1.2.5)
Added "-ow" (overwrite) option. The input file is overwritten and the
output file is just used temporarily and removed after it is copied
over the input file.. If you do not specify an output file, "pngout.png"
is used as the temporary file. Caution: the temporary file must be on
the same filesystem as the input file. Contributed by a group of students
of the University of Paris who were taking the "Understanding of Programs"
course and wished to gain familiarity with an open-source program.
All on one line:
for file in *.png; do pngcrush "$file" "${file%.png}-crushed.png" && mv "${file%.png}-crushed.png" "$file"; done
should do it.
(Though so far in my own tests, less than half of the pngs I tested pngcrush
on were smaller afterwards, so color me unimpressed.)