Não, não há soluções gerais. A única maneira de verificar se um arquivo está corrompido é tentar lê-lo; somente um software que saiba como ler esse formato em particular pode fazer isso.
O que você poderia fazer é usar file
para identificar o tipo do arquivo e, em seguida, usar o tipo para escolher um programa apropriado para verificar o arquivo. Você poderia escrever um script como este:
# /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
Mas você teria muito trabalho a fazer para preencher a declaração do caso.
É possível que alguém já tenha escrito tal script (ou programa), mas não conheço nenhum.