Какая программа есть под Linux для поиска битых картинок/изображений?
Почти наверняка gifsicle, когда натыкается на плохую картинку, возвращает код выхода отличный от нуля. Используя эти сведения, можно легко наваять скрипт, который будет удалять битые картинки.
Что-то вроде такого, но нужно тестить перед исполнением на реальных данных.for i in `find /var/www -name "*.gif"`; do
    ~/usr/bin/gifsicle-1.87/src/gifsicle -I $i > /dev/null || rm $i
done
Нет, -I выдает одинаковый результат на битых и целых картинках:
Целая:
-bash-4.1#  ~/usr/bin/gifsicle-1.87/src/gifsicle -I /var/www/paulmann/data/www/paulmann.su/photos/28060fr02.gif
* /var/www/paulmann/data/www/paulmann.su/photos/28060fr02.gif 1 image
  logical screen 120x70
  global color table [256]
  background 0
  + image #0 120x70
Битая:
-bash-4.1#  ~/usr/bin/gifsicle-1.87/src/gifsicle -I /var/www/paulmann/data/www/paulmann.su/photos/28060bad.gif
* /var/www/paulmann/data/www/paulmann.su/photos/28060bad.gif 1 image
  logical screen 120x70
  global color table [256]
  background 0
  + image #0 120x70
и только запустив оптимизацию мы имеем:gifsicle:/var/www/paulmann/data/www/paulmann.su/photos/28060bad.gif: read error: image corrupted, code out of range (4 times)
gifsicle:/var/www/paulmann/data/www/paulmann.su/photos/28060bad.gif: read error: missing 8089 pixels of image data
Спасибо Валерий Рябошапко - что-бы твое решение работало нужно вместо "-I" использовать "-O3", т.к. битый файл определяется только при компрессии. Удалил все, на что ругнулась программа при оптимизации (если оптимизация успешная, gifsicle ничего не выводит): for i in `find /var/www -name "*.gif"`; do ~/usr/bin/gifsicle-1.87/src/gifsicle -O3 $i > /dev/null || rm $i done
P.S. при этом, кроме битых, удалятся JPG файлы с расширением GIF и все другие файлы с которыми хоть что-то не то.