Расширения файлов автофикса на основе содержимого
Есть ли приложение / скрипт, который будет смотреть на содержимое файла и пытаться угадать правильное расширение файла? У меня есть куча файлов, восстановленных из резервной копии, и это смесь изображений, видео и документов. Все имена файлов случайные и не имеют расширений.
Неважно, для какой платформы приложение / скрипт.
Я знаю, что есть сайты, которые будут угадывать формат файла, если вы загрузите его, но у меня есть сотни файлов, поэтому мне нужен пакетный режим.
1 ответ
Решение
В Linux/Unix есть file
команда. Он будет смотреть на данные и затем делать предположения, какой это тип файла. Если количество файлов ограничено, вы можете написать скрипт-обертку, который добавляет расширение на основе содержимого файла. Быстрый пример, чтобы понять идею:
#!/bin/bash
filename=$1
filedata=`file $filename`
if [[ $filedata =~ /gzip/ ]];
mv $filename ${filename}.gz
exit
fi
if [[ $filedata =~ /PDF document/ ]];
mv $filename ${filename}.pdf
exit
fi