
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?