
Вот гипотетический сценарий: у меня есть процесс архивации, в котором файлы появляются, и я добавляю их в tar, а затем tar архивируется. Что-то вроде этого:
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
что я действительно хочу сделать, так это чтобы tar создавался и архивировался по ходу цикла, чтобы не было необходимости во временном файле. Что невозможно сделать при добавлении, так как нужно открыть существующий файл и искать конец. Вот "набросок" того, что я действительно хочу:
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
Есть ли способ добавить больше файлов в tar, когда он отправляется на stdout?