NY152 a écrit :Ton code indiquerait comme corrompu un fichier qui ne serait pas une archive aussi non ? Admettons qu'une image serait dans le répertoire, il retournerait une erreur et déplacerait un fichier qui ne doit pas l'être non ?
Non car mon pseudo-code est blindé avec un prérequis: ^^
FoolEcho a écrit :#Pour chaque archive à tester
#faire
Je pose donc comme préalable que ma routine n'est appelée qu'avec une archive.
Mais dans les faits, il serait fait à la volée en vérifiant d'abord le mime-type du fichier (des éléments indiqués par la sortie de
file -i
en l'occurrence.) et non l'extension.

Je ne connais pas (ça ne veut pas dire que ça n'existe pas) d'autres moyens que de passer par quelques fonctions supplémentaires (quelque chose basé sur ce goût-là en modifiant le tableau VALID_MIMETYPES, avec application/x-gzip, etc.:
https://gist.github.com/larvanitis/4088616 )...
Ça donnerait donc:
Code : Tout sélectionner
#Pour chaque archive à tester
#faire
if containsElement "$FILE_MIME" "${VALID_MIMETYPES[@]}"
then
7z t "$i"
#si le test rencontre un problème quelconque
if test $? -ne 0
then
#on isole l'archive
mv $i $rep
fi
fi
C'est juste un squelette, hein...
Autrement, pour les archives (ou tout autre fichier d'ailleurs), il y a une méthode 1000 fois plus simple pour vérifier s'il est corrompu: les sommes de contrôle (bon, à condition que l'archive de départ ne soit elle-même pas corrompu, mais là encore faut bien partir d'un pré-requis...

).