Linux gnu tar에 문제가 있습니다. 옵션을 사용하는 경우
-T - (for file list from stdin) or
-T named_pipe_file ,
이것은 즉시 작동하지 않습니다. 예를 들어, 간단한 대화식 스크립트 :
while read x; do echo $x; done|\
tar cvf tar.tar -T -
tar는 입력 EOF를 표시하기 위해 ^ D를 누를 때만 아카이브를 시작합니다.
mkfifo named_pipe
tar cvf tar.tar -T named_pipe
while read x; do echo $x; done >named_pipe
tar가 버퍼링을하는 것 같습니다. 그러나 얼마나 걸립니까? 많은 파일을 TAR로 다시 압축해야하지만 디스크 공간이 거의 없습니다. 그런 다음 즉석에서이 작업을 수행해야합니다. tar 옵션 --remove-files를 사용해야합니다. 그러나 -T 옵션에 대한 상호 작용이 없으면 impossobie입니다. 계획에서 코드의 "while"부분은 파일을 파일로 순차적으로 압축 해제하고 제거를 위해 TAR 및 다음 파일을 대기해야합니다. 아이디어 주셔서 감사합니다 :)
내 타르 버전 : tar (GNU tar) 1.26 (C) 2011 FSF
tar
파일 이름 또는 압축해야 실제 데이터를? 이-T
옵션은 파일 이름 목록을 요구하며 시스템의 루프에 광고 된대로 작동합니다.