0

非圧縮ファイルのみを使用するプログラムがあります。私はいくつかの .gz ファイルを持っています。私の目標は、それらの連結をそのプログラムに供給することです。tar.gz ファイルがあれば、tar.gz アーカイブを archivemont コマンドでマウントできます。

gz ファイルを連結できることはわかっています。

cat a.gz b.gz > c.gz

しかし、私が知っているように、gz ファイルをマウントする方法はありません。すべてのファイルを解凍するのに十分なディスク容量がなく、tar コマンドは標準入力を入力として受け入れないため、これを実行できません。

zcat *.gz | tar - | gzip > file.tar.gz
4

1 に答える 1

0

tar.gz アーカイブに対して実行する必要がある操作は明確ではありません。しかし、私が見たところ、tar.gz はこのアプリケーションのフォーマットではありません。アーカイブ ストリーム全体が gzip で圧縮されているため、ファイルを取り出したり変更したりするには、その後のすべてを再圧縮する必要があります。tar.gz ストリームは、各ファイルの圧縮を個別に維持するために特別に準備できますが、アーカイブ内の個々のファイルのランダム アクセスと操作に適した .zip 形式を使用することもできます。

あなたのコメントの 1 つに対処するために、tar は実際に stdin を入力として受け入れることができます。GNU tar と BSD tar (異なる構文を使用) の両方が stdin から tar ファイルを取り込み、エントリを削除し、新しい tar ファイルを stdout に書き込むことができるいくつかの例については、pip tar extract into tar createを参照してください。

于 2012-12-15T15:36:23.103 に答える