Uma solução é reescrevê-lo como:
rsync -a ${DIR2BCK} ${TMPDIR}/ > /dev/null 2>&1 ; tar czf foo.backup.tar ${TMPDIR}
Portanto, tar não será iniciado até que rsync termine.
A outra solução é enviar o cp / rsync para o segundo plano e aguardar até que ele termine com o comando wait .
Por exemplo:
rsync -a ${DIR2BCK} ${TMPDIR}/ > /dev/null 2>&1 &
wait
tar czf foo.backup.tar ${TMPDIR}
O último & na linha rsync envia a execução para o segundo plano (torna-se um filho da sessão atual) e, em seguida, o wait força essa sessão do shell a aguardar até que todas as crianças tenham terminado para continuar.