Se tar encontrar erros em sua entrada, exit(3) ¹ terá um valor de saída diferente de zero. Isso - com a maioria das tar implementações - também é feito ao listar o conteúdo do arquivo com t . Assim, você pode simplesmente verificar o valor de saída de tar para determinar se algo deu errado:
if ! tar tf /root/archive.tar &> /dev/null; then
write_an_email_to_root
fi
Se o tar não encontrar todos os erros com t , você ainda poderá extrair o arquivo para stdout e redirecionar stdout para /dev/null , o que seria a abordagem mais lenta, porém mais confiável:
if ! tar xOf /root/archive.tar &> /dev/null; then
write_an_email_to_root
fi
¹ Essa notação denota a manpage, não a chamada real. Veja man 3 exit .