script bash a tar diferido a quince a medida que llegan los archivos

script bash a tar diferido a quince a medida que llegan los archivos

Este es el escenario hipotético: tengo un proceso de archivo en el que aparecen archivos y los agrego a tar, y luego el tar se comprime. Algo como esto:

while sleep 1 ; do
    new_files="$(some-command-to-scan-for files)"
    tar --append --file xxx.tar $new_files
    if [ condition ] ; then break; fi
done

cat xxx.tar | gzip | dd of=/another/directory/xxx-$(date).tgz
rm xxx.tar

Lo que realmente quiero que suceda es que se cree tar y se comprima a medida que avanza el ciclo, de modo que no haya necesidad de un archivo temporal. Lo cual no es posible hacer cuando está agregando, ya que necesita abrir un archivo existente e intentar finalizar. Aquí está el "bosquejo" de lo que realmente quiero:

while sleep 1 ; do
    new_files="$(some-command-to-scan-for files)"
    tar --append --file - $new_files
    if [ condition ] ; then break; fi
done | gzip | dd of=/another/directory/xxx-$(date).tgz

¿Hay alguna forma de agregar más archivos al tar cuando llega a la salida estándar?

información relacionada