何百万ものファイルを含むtar.gzファイルがあります。ファイル数の上限なので、解凍せずに内容を分割したいです。 tar/tar.gzファイルを複数のtar/tar.gzに分割する方法はありますか?
これが不可能な場合は、Pythonを代わりに使用できますか?
最初の投稿を見ると、私が何か間違っているかどうかがわかります。
編集:もう一度合わせたくありません。各「分割」ファイルを処理できるようにしたいです。
答え1
分割は正しいツールです。
ファイルを10MBチャンクに分割
split -b10m /path/to/file parts
一緒に入れる
cat parts* > file
答え2
を使用して分割することができますが、split
部品は再結合するまで意味がありません。別のアーカイブに分割するには、解凍する必要があります。
答え3
解凍なしで圧縮されたアーカイブを複数の部分に分割することはできませんtar
。圧縮は「tarストリーム」の上に適用され、ストリームは圧縮機によって不透明なバイナリストリームとして処理される。
したがって、ネイティブ圧縮tarアーカイブからtarファイルセットを生成できるすべてのツールは実際にそれを解凍します。
一方を入力として使用し、もう一方を出力ファイルとして生成し、モード以外にはtar
独自のモードはありません。tar archive
tar
append
delete
tarアーカイブはかなり大きいので、抽出された各ファイルセットに対して別々のアーカイブを作成しながら、ファイルを部分的に抽出するために何度も解凍したくありません。
一つあるPython tarライブラリこれは「即時」のtarファイルの処理を可能にすることができます(私はpython
これを直接確認するのにうまくいきません)。これにより、ソースアーカイブからアイテムを読み取り、サイズが選択した制限に達するまで、現在の出力アーカイブに追加するPythonスクリプトを開発できます。その後、スクリプトは次の出力アーカイブを生成し、続行します。