Comment vérifier si un file est corrompu ou non?

Y a-t-il des solutions générales pour vérifier si un file est corrompu ou non? Par exemple, si un file video est mauvais ou si un file compressé est corrompu, etc.

    Non, il n'y a pas de solutions générales. La seule façon de vérifier si un file est corrompu est d'essayer de le lire; seul le logiciel qui sait lire ce format particulier peut le faire.

    Ce que vous pouvez faire est d'utiliser le file pour identifier le type du file, puis utilisez le type pour choisir un programme approprié pour vérifier le file. Vous pourriez écrire un script comme celui-ci:

     # /bin/bash -eu FILENAME=$1 FILETYPE="$(file -b $FILENAME | head -1 | cut -d , -f 1)" case "$FILETYPE" in "gzip compressed data") CHECKER="gunzip -t" ;; # many, many more lines here *) echo "Unknown type: $FILETYPE"; exit 1 ;; esac $CHECKER $FILENAME 

    Mais vous auriez beaucoup de travail à faire pour remplir l'énoncé de cas.

    Il est possible que quelqu'un ait déjà écrit un tel script (ou programme), mais je n'en connais aucun.

    Si vous savez à un moment donné que le file est bon, vous pouvez faire une sum de contrôle et l'utiliser pour comparer plus tard pour s'assurer qu'il est toujours entier. Ceci est utile avant de transférer des files entre des supports ou entre des réseaux.

    Si vous ne connaissez pas le bon état d'un file, il n'y a pas de méthode universelle ni de vérification de la corruption. Seul le format de file spécifique détermine dans chaque cas ce qui est corrompu ou non corrompu.

    Si vous utilisez ZFS, vous pouvez lire le file et il est garanti de ne pas être corrompu ou vous avez une erreur de lecture et il est.

    Edit Après les sages commentaires, voici une clarification de ma réponse:

    ZFS peut protéger et détecter contre la corruption de données silencieuse. par exemple: http://www.zdnet.com/blog/storage/data-corruption-is-worse-than-you-know/191 Bien sûr, si le file est déjà corrompu au moment où il est écrit initialement, il n'y a rien le système de files peut faire.

    Pour protéger contre la corruption qui se produirait lors de la transmission du file, les techniques générales habituelles sont md5sum ou des hash similaires.