Comment puis-je vérifier la validité d'un fichier gz, je n'ai pas le hachage du fichier, j'utilise gzip -t
mais il ne renvoie aucune sortie.
Merci
La gzip -t
commande renvoie uniquement un code de sortie au shell indiquant si le fichier a réussi le test d'intégrité ou non.
Exemple (dans un script):
if gzip -t file.gz; then
echo 'file is ok'
else
echo 'file is corrupt'
fi
L'ajout lui -v
fera réellement rapporter le résultat avec un message.
Exemple:
$ gzip -v -t file.gz
file.gz: OK
Le fichier est donc correct. Corrompuons le fichier (en écrivant le caractère 0
à l'octet 40 dans le fichier) et réessayons.
$ dd seek=40 bs=1 count=1 of=file.gz <<<"0"
1+0 records in
1+0 records out
1 bytes transferred in 0.000 secs (2028 bytes/sec)
$ gzip -v -t file.gz
file.gz: gzip: file.gz: Inappropriate file type or format
L'intégrité d'un fichier par rapport à sa compression ne garantit pas que le contenu du fichier est ce que vous croyez qu'il est. Si vous avez une somme de contrôle MD5 (ou une somme de contrôle similaire) du fichier de la part de celui qui l'a fourni, vous pourrez obtenir une confirmation supplémentaire que le fichier est non seulement une gzip
archive valide , mais aussi que son contenu correspond à ce que vous attendez. être.
gzip -t
n'ont une sortie autre que le code de retour, si c'est un fichier compressé gzip correct.
Il ne renvoie une erreur que si vous l'essayez sur quelque chose qui n'est pas un fichier compressé gzip:
steamsrv@leviathan:~$ gzip -t commands.txt
gzip: commands.txt: not in gzip format
Conclusion: Votre fichier est presque certainement un fichier compressé gzip. Ce que je ne peux pas vous dire, c'est si c'est le fichier exact que vous pensez qu'il est censé être, ce à quoi le hachage serait utile ...