У меня сейчас есть tar.gz, и я хочу извлечь из него всего один или два файла и упаковать/добавить их в новый tar.gz, и все это за один раз. Конечно, я могу просто сохранить во временный файл и работать с ним, но АБСОЛЮТНОЕ требование состоит в том, чтобы сделать все это без какого-либо промежуточного вывода файла, т.е. конвейера. Другими словами, я хотел бы что-то вроде следующего псевдокода (очевидно, синтаксис неверен):
tar -xvf first.tar.gz subdir1/file1 subdir2/file2 | tar cf - | gzip > second.tar.gz
Кто-нибудь знает правильный синтаксис для этого? Я пробовал много вариантов, но безрезультатно.
Я также очень открыт к идее использования cpio, но опять же, я озадачен тем, как правильно настроить синтаксис, и, насколько я понимаю, cpio принимает только архивы или имена файлов, а не файлы.
Любая помощь будет оценена.
РЕДАКТИРОВАТЬ: внутри архива нет конкретного шаблона имени файла для извлечения. Учитывая, что BSD и GNU tar могут искать только по одному шаблону за раз, я не уверен, что вообще возможно использовать флаги include/exclude соответственно.