Найти неправильно напечатанные изображения 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