私は今 tar.gz を持っています。そこから 1 つまたは 2 つのファイルを抽出し、それらを新しい tar.gz にまとめて一度に追加したいと考えています。もちろん、一時ファイルに保存して作業することもできますが、絶対的な要件は、中間ファイル出力、つまりパイピングなしでこれをすべて行うことです。つまり、私が望むのは、次の疑似コードのようなものです (明らかに構文が正しくありません)。
tar -xvf first.tar.gz subdir1/file1 subdir2/file2 | tar cf - | gzip > second.tar.gz
誰かがこれの適切な構文を知っていますか? 私は多くの変種を試しましたが、役に立ちませんでした。
私は cpio を使用するという考えにも非常にオープンですが、構文を適切に取得する方法に困惑しています。私が理解していることから、cpio はファイルではなくアーカイブまたはファイル名のみを取り込みます。
どんな助けでも大歓迎です。
編集: 抽出する tarball 内に特定のファイル名パターンはありません。BSD と GNU tar が一度に 1 つのパターンしか検索できないことを考えると、それぞれ include/exclude フラグを使用できるかどうかさえわかりません。