当文件到达时,bash 脚本将惰性 tar 发送至 fifo

当文件到达时,bash 脚本将惰性 tar 发送至 fifo

这是假设的场景:我有一个归档过程,其中显示文件并将它们附加到 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 转到标准输出时,是否有某种方法可以将更多文件附加到 tar 中?

相关内容