bashスクリプトは、ファイルが到着したときに怠惰なtarをfifoに送信します。

bashスクリプトは、ファイルが到着したときに怠惰なtarをfifoに送信します。

以下は仮想シナリオです。ファイルを表示し、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にさらにファイルを追加する方法はありますか?

関連情報