don't unlink dest file if fail