![bash 스크립트는 파일이 도착할 때 게으른 tar를 fifo로 보냅니다.](https://linux55.com/image/192296/bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EB%8F%84%EC%B0%A9%ED%95%A0%20%EB%95%8C%20%EA%B2%8C%EC%9C%BC%EB%A5%B8%20tar%EB%A5%BC%20fifo%EB%A1%9C%20%EB%B3%B4%EB%83%85%EB%8B%88%EB%8B%A4..png)
다음은 가상 시나리오입니다. 파일을 표시하고 이를 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에 더 많은 파일을 추가하는 방법이 있습니까?