Я нашел некоторые проблемы с 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 начинает архивирование, только когда я нажимаю ^ D для пометки ввода EOF, такая же ситуация, когда я использую именованный канал:
mkfifo named_pipe
tar cvf tar.tar -T named_pipe
while read x; do echo $x; done >named_pipe
Кажется, смола делает некоторую буферизацию. Но как долго это? Я должен перепаковать много файлов в TAR, но мало места на диске. Тогда я должен сделать это на лету. Для этого я использую опцию tar --remove-files. Но без интерактивности для опции -T это невозможно. В плане часть кода while должна распаковывать файл в файл последовательно, ожидая удаления TAR и следующего файла. Спасибо за идеи :)
моя версия tar: tar (GNU tar) 1.26 (C) 2011 FSF