Существуют ли общие решения, чтобы проверить, поврежден ли файл или нет? Например, является ли видеофайл плохим или сжатый файл поврежден и т. Д.
filesystems
corruption
checksum
LanceBaynes
источник
источник
echo "P = NP" >is-this-corrupt.txt
:)Ответы:
Нет, общих решений нет. Единственный способ проверить, не поврежден ли файл, - это попробовать и прочитать его; это может делать только программное обеспечение, которое умеет читать этот конкретный формат.
Что вы можете сделать, это использовать
file
для определения типа файла, а затем использовать тип, чтобы выбрать подходящую программу для проверки файла. Вы можете написать скрипт, как это:Но у вас будет много работы, чтобы заполнить заявление по делу.
Возможно, кто-то уже написал такой сценарий (или программу), но я не знаю ни одного.
источник
grep
,cat
,tar
...). Ваше решение поэтому очень раздутый.cat
или любую другую программу, которая рассматривает файл исключительно как неструктурированный поток байтов, для проверки на наличие повреждений. Я не верю, что мое решение раздуто.Если в какой-то момент вы знаете, что файл исправен, вы можете сделать из него контрольную сумму и использовать ее для последующего сравнения, чтобы убедиться, что он все еще цел. Это полезно перед передачей файлов между носителями или между сетями.
Если вы не знаете о хорошем состоянии файла, нет универсального способа или проверки на наличие повреждений. Только конкретный формат файла в каждом случае определяет, какие повреждены или нет поврежденные данные.
источник
Если вы используете ZFS, либо вы можете прочитать файл, и он гарантированно не поврежден, либо вы получили ошибку чтения, и это так.
Изменить После мудрых комментариев, вот пояснение моего ответа:
ZFS может защитить и обнаружить от молчаливого повреждения данных. например: http://www.zdnet.com/blog/storage/data-corruption-is-worse-than-you-know/191 Конечно, если файл уже поврежден во время первоначальной записи, ничего не происходит файловая система может сделать.
Для защиты от повреждения, которое может произойти во время передачи файла, обычными методами общего назначения являются md5sum или аналогичные хэши.
источник