Есть ли утилита для сравнения содержимого файла с расширением?

Есть ли утилита для сравнения содержимого файла с расширением?

Я ищу утилиту (для Linux или Windows), которая может проверить, что содержимое файла соответствует расширению. Это для обнаружения сильно поврежденных файлов.

Я на грани написания небольшого bash-скрипта, который будет просто запускать «file» для всего, но я не хочу выяснять, что возвращает «file» для всех правильно отформатированных типов файлов, с которыми мне предстоит столкнуться.

Предыстория: Недавно мой друг случайно стер свою пользовательскую папку Windows (да... Рабочий стол, реестр, Мои документы, все...). Я использовал агрессивную утилиту unerase, чтобы восстановить столько, сколько смог. Эта конкретная утилита восстанавливает несколько копий одного и того же файла по какой-то причине (например, "Letter.doc", "Letter(1).doc", "Letter(2).doc" и т. д...). Некоторые из этих файлов будут содержать случайный мусор, некоторые будут действительным документом, и некоторые из них будуттакой жедокумент.

Итак, я использовал fdupes и скрипт perl, чтобы уничтожить все дубликаты, но теперь я хочу отделить те, которые выглядят так, как будто они могут быть оригинальным файлом, от тех, которые, вероятно, таковыми не являются. Не могу поверить, что я первый человек, которому пришлось это сделать...

решение1

Вы можете попробоватьTrIDNetпрограмма (есть такжеCLIиВ сетиверсия). Он идентифицирует файлы на основе двоичных сигнатур, основанных на встроенной (и расширяемой) библиотеке. Вот списокрасширений файлов, которые он может определить по умолчанию, хотя можно добавить определение для нового типа вручную.

Обратите внимание, что если двоичная подпись файланетнеповрежденный поврежденный, программное обеспечение не будет знать, что файл поврежден. Это зависит от реализации приложения, которое использует файл для проверки на предмет повреждения (поскольку нет способа "просто узнать", поврежден ли файл).

Так работают файлы, а программа, использующая двоичные файлы, проверяет, повреждены они или нет (некоторые типы файлов хранят внутри себя контрольные суммы).

решение2

Для офисных приложений в диалоговом окне открытия есть опция «Открыть и восстановить...».

Для изображений IrfanView может восстанавливать заголовки файлов.

Для видео VLC Player сделает то же самое.

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

Связанный контент