web-dev-qa-db-ja.com

Linuxでマルチパート(スパン)Zipを解凍する方法は?

400 MBのファイルをウェブサーバーにアップロードする必要がありますが、アップロードできるのは200 MBに制限されています。私のホストは、私がLinuxで行ったことのないスパンアーカイブを使用することを提案しました。

独自のフォルダーにテストを作成し、PDFにtest.Zip.001.002.003。解凍するにはどうすればよいですか?最初に参加する必要がありますか?

7zを使用するのは、Zip形式を使用するのと同じくらいうれしいことに注意してください。これが結果に何らかの影響を与える場合。

79
Tim

最初にそれらに参加する必要があります。次の例のように、一般的なLinuxアプリcatを使用できます。

cat test.Zip* > ~/test.Zip

これにより、test.Zip.001test.Zip.002などのすべてのファイルが1つの大きなtest.Zipファイルに連結されます。その単一のファイルを取得したら、unzip test.Zipを実行できます。

"LinuxでZipアーカイブを作成、分割、結合、抽出する方法" が役立つ場合があります。

84
fromnaboo

Linux unzipユーティリティは、実際にはマルチパートzipをサポートしていません。 manual から:

マルチパートアーカイブは、Zipとの組み合わせを除き、まだサポートされていません。 (すべてのパーツを順番に連結する必要があります。次に、「修正」するには、連結されたアーカイブに対してZip -F(Zip 2.xの場合)またはZip -FF(Zip 3.xの場合)を実行する必要がありますまた、Zip 3.0以降では、Zip -s- inarchive -O outarchiveを使用してマルチパート(分割)アーカイブを単一ファイルアーカイブに結合できます。詳細については、 Zip 3のマニュアルページ を参照してください。)

したがって、最初にピースを連結してから、結果を修復する必要があります。 cat test.Zip.*は、test.Zip.*と呼ばれるすべてのファイルを連結します。ワイルドカード*は、任意の文字シーケンスを表します。ファイルは辞書式順序で列挙されます。これは先行ゼロがあるため、番号順と同じです。 >test.Zipは、出力をファイルtest.Zipに送ります。

cat test.Zip.* >test.Zip
zip -FF test.Zip --out test-full.Zip
unzip test-full.Zip

公式のPkzipユーティリティを使用してマルチパートZipを作成するのではなく、Zipファイルを直接分割してピースを作成した場合は、パーツを結合するだけで済みます。

cat test.Zip.* >test.Zip
unzip test.Zip
7z x archive.Zip.001

残りは自動的に検出されます

28
mist

私はここで答えを見つけました: https://superuser.com/a/517758/10264

この回答は、概念的には Gilles の回答に似ています。つまり、最初に分割アーカイブをsplitを使用して通常のアーカイブに結合し、次にunzipを使用して解凍します。

違いは、私には機能しなかった-FFフラグを使用する代わりに、Zipに分割せずに分割ファイルを再パックするように指示するだけです。それが-s 0フラグの意味です。

したがって、最初に、分割されたアーカイブを1つのアーカイブに結合します。

Zip -s 0 split-foo.Zip --out unsplit-foo.Zip

次に、unzipを使用して単一のアーカイブを抽出します。

unzip unsplit-foo.Zip
21
Paul Wagland

ファイルのコレクションが大きい場合、または非常に大きなファイルしかない場合、このコマンドAssemblyは、進行状況バーを表示するので非常に便利です。

 $ pv files.Zip* | cat - > uberFile.Zip
 25.0GiB 0:50:24 [8.48MiB/s] [============================================================>] 100%
 $ unzip uberFile.Zip

これを使用して、25Gbの分割アーカイブを組み合わせて抽出しました。

0
Zexelon

Unarコマンドラインツールは、分割されたファイルを含め、unZip、unRar、un7Zip、unTarなどを以下の方法で実行できることに言及する価値があると思います。

unar first_file

https://directory.fsf.org/wiki/Unar#Details

0
Guariba Som

ちょうど別の例。これはbashで3GBのOracleインストーラを分割するために私のために働きました:

echo "<installOracleDB.sh>: Splitting OracleDB installer"
Zip /tmp/linuxx64_12201_database.Zip --out /tmp/linuxx64_12201_oradb.Zip -s 1000m
echo "<installOracleDB.sh>: Merging OracleDB installer"
Zip -FF /tmp/linuxx64_12201_oradb.Zip --out /tmp/linuxx64_12201_database.Zip
echo "<installOracleDB.sh>: Removing temporary files OracleDB installer"
find /tmp -type f -name 'linuxx64_12201_oradb*' -exec rm {} +
echo "<installOracleDB.sh>: Unizipping OracleDB installer"
unzip /tmp/linuxx64_12201_database.Zip
0
TheHagueCoder

GoogleドライブダウンロードからのマルチパートZipの場合、説明されている方法のいくつかを試しましたが、うまくいきませんでした。私は最終的にターミナルから簡単な方法でそれを行うことができました:次の部分で同じものを抽出し終えたら、unzip filename.Zip.001:unzip filename.Zip.002など...

別のオプション:7z x filename.Zip.002次の部分と同じものを抽出し終えたとき:7z x filename.Zip.002 ...

0
carregul