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.