Eu fiz isso. Eu crio um novo arquivo (com o sufixo ".new"), mas antes de substituir o antigo, eu verificaria a diferença de tamanho dos arquivos e abortaria (enviando algum tipo de notificação, como e-mail) se houver muitas alterações. / p>
Eu geralmente faço isso em perl, mas bash seria semelhante.
$file="file_being_updated";
$new=".new";
if ( -f $file ) {
my $percent_diff = abs( 100 - 100*(-s "$file$new")/(-s $file) );
if ( $percent_diff > 20 ) { # more that this to different!
printf STDERR "File \"$file$new\" differs by more that 20%%! (%.1f%%)\n", $percent_diff;
printf STDERR "-------------- ABORTING REPLACMENT -----------\n";
exit 10;
}
}