Найти неправильно напечатанные изображения PNG в Ubuntu

У меня Ubuntu 12.04 VPS, один из редакторов переименовал файлы *.png в *.jpg и вставил их в статьи.

Я получаю ошибки в файле apache2 error.log.

Как я могу найти неправильно напечатанные *.png файлы на моем сервере Ubuntu 12.04?

Спасибо

2 ответа

Решение

Если вы хотите найти файлы с расширением "jpg", которые на самом деле являются файлами PNG, тогда что-то вроде...

find /usr/share/doc -type f -name '*.jpg' -print0 | xargs -0 file | grep 'PNG image data'

с соответствующими подстановками каталога верхнего уровня и шаблоном имени файла, если вы не используете.jpg, вы получите список файлов по одному на строку, за которым следует представление о содержимом файла. Вы можете передать это в ваш любимый инструмент для обработки текста, чтобы получить только список файлов или даже команды, необходимые для переименования / копирования файлов с правильными именами.

Вот один ленивый и неаккуратный, но эффективный способ сделать это. Я предлагаю вам записать команды "переместить" в файл и внимательно изучить их после того, как вы создадите архив всего, что вы можете уничтожить.

for img in `find / -type f -iregex ".*\.jp.g" -printx`;
 do newname=$(echo $img | sed s/\.jp.g/\.png/) ;
 echo "I wanna move $img to $newname"; 
done
Другие вопросы по тегам