У меня есть много восстановленных файлов, многие из которых являются недействительными, хотя они выглядят нормально по имени и расширению. Это ожидается.
Теперь мне нужно отфильтровать те, которые, вероятно, в порядке. Я вижу варианты:
Например, файлы Power Point (* .pptx) на самом деле представляют собой zip-контейнеры, которые начинаются с PK в первых двух байтах. Итак, команда
head --byte 2 filename
выводит PK для большинства хороших файлов, тогда как плохие файлы не начинаются с PK.
Вопрос 1: Как я могу объединить head
и find
чтобы вывести список подходящих файлов?
Другой подход - команда file
. Это печатает
Zip archive data, at least v2.0 to extract
для хороших файлов Power Point, но просто
data
для плохих файлов.
Вопрос 2: Как я могу объединить file
с find
чтобы вывести список допустимых файлов?
Есть и другие типы файлов, но я могу улучшить технику, если только получу подсказку :)
Вопрос 3: Есть ли более очевидные способы сделать это?