大きなtar.bz2ファイルをいくつかの小さなファイルに分割し、それらの小さなtar.bz2ファイルをUbuntuで個別に抽出できますか?
ありがとう、
簡単にはできないと思います。Aは単一のストリームであり、アーカイブ内の特定のファイルの先頭にスキップできる.tar.bz2
ようなインデックスはありません。ユーティリティzip
を使用してファイルを分割し、パーツよりもそれらを抽出できます(ディスクに貼り付けたファイルが再作成されないように、stdinを介してこれを行うことができます)。最初のフラグメントは個別に抽出できますが(おそらく破損する可能性のある最後のファイルを除く)、それ以降のフラグメントは、その前にある1つがないと使用できません。split
cat
これについてまだ助けが必要かどうかはわかりませんが、少なくとも分割コマンドと tar (bz2) 圧縮を併用できる方法を見つけました。各ファイルを個別に抽出する限り、このオプションはファイルを全体の一部として認識します (Winzip が複数のボリュームにまたがる場合と同様に...ボリュームの 1 つが見つからない場合、アーカイブ全体が破損しています)。とは言うものの:
分割ファイルの作成。これにより、「aa、ab、ac」の指定でファイルが順番に作成されることに注意してください。
tar -cv(z/j)f - (アーカイブするファイル) | split -b(4000m などのバイト単位のサイズ) - (出力アーカイブ ファイルの名前)
分割ファイルの抽出:
猫 (ファイル*) | bzcat/gunzip(-d) | タール (t/x)v(j/z)f -
(「j」オプションを使用した場合、bzcat はパイプ内に入ります) または (「z」オプションを使用した場合、gunzip はパイプ内に入ります)。エラーが発生した場合は、これら 2 つのパイプ内で「gunzip -d」を使用する必要がある場合もあります。
オプションを試すことができ--multi-volume
ます:
tar -cf archive.tar --multi-volume --tape-length 1024 folder
残念ながら、圧縮されたアーカイブでは機能しません。
tar: Cannot use multi-volume compressed archives
ボリュームを個別に圧縮できますが、ボリュームのサイズはかなり異なる場合があります。
それがあなたのユースケースを解決することを願っています。