it-swarm-eu.dev

Jak rozbalit multipartový (rozložený) zip na Linuxu?

Potřebuji nahrát soubor 400 MB na můj webový server, ale jsem omezen na 200 MB nahrávání. Můj hostitel navrhl, abych používal rozložený archiv, který jsem v Linuxu nikdy neudělal.

Vytvořil jsem test ve své vlastní složce, zips nahoru a PDF do test.Zip.001, .002, a .003. Jak to rozbalím? Musím se k nim přidat jako první?

Vezměte prosím na vědomí, že budu stejně šťastný s používáním 7z, jako používám formáty Zip. Pokud to změní výsledek.

79
Tim

Nejprve se k nim musíte připojit. Můžete použít běžnou linuxovou aplikaci cat jako v následujícím příkladu:

cat test.Zip* > ~/test.Zip

Tím zřetězíte všechny vaše test.Zip.001, test.Zip.002, atd. soubory do jednoho většího souboru test.Zip. Jakmile budete mít jeden soubor, můžete spustit unzip test.Zip

„Jak vytvořit, rozdělit, spojit a extrahovat archivy ZIP v Linuxu“ může pomoci.

84
fromnaboo

Nástroj Linux unzip ve skutečnosti nepodporuje vícedílné zipy. Z manuální :

Vícedílné archivy zatím nejsou podporovány, s výjimkou spojení se Zipem. (Všechny části musí být zřetězeny v pořádku a poté Zip -F (pro Zip 2.x) nebo Zip -FF (pro Zip 3.x) musí být provedeno v zřetězeném archivu, aby bylo „opraveno“. Zip 3.0 a novější mohou také kombinovat vícedílné (rozdělené) archivy do kombinovaného archivu s jedním souborem pomocí Zip -s- inarchive -O outarchive. Viz stránka manuálu Zip pro více informací.)

Takže musíte nejprve zřetězit kousky a pak opravit výsledek. cat test.Zip.* zřetězí všechny soubory s názvem test.Zip.* kde zástupný znak * znamená libovolnou posloupnost znaků; soubory jsou sečteny v lexikografickém pořadí, které je díky číselným nulovým hodnotám stejné jako číselné pořadí. >test.Zip přesměruje výstup do souboru test.Zip.

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

Pokud jste vytvořili kousky přímým rozdělením souboru Zip, na rozdíl od vytvoření vícedílného Zipu s oficiálním nástrojem Pkzip, vše, co musíte udělat, je připojit se k částem.

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

Zbytek automaticky najde

28
mist

Odpověď jsem našel zde: https://superuser.com/a/517758/10264

Tato odpověď je v konceptu podobná jako odpověď Gilles , konkrétně nejprve zkombinujete rozdělený archiv do normálního archivu pomocí split a poté jej rozbalíte pomocí unzip.

Rozdíl je v tom, že místo použití příznaku -FF, Který pro mě nefungoval, stačí říct Zipu, aby přebalil rozdělený soubor bez rozdělení. To znamená, co znamená -s 0.

Nejprve tedy rozdělte rozdělený archiv do jednoho archivu:

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

Poté rozbalte jediný archiv pomocí rozbalení:

unzip unsplit-foo.Zip
21
Paul Wagland

Pokud máte velkou sbírku souborů nebo jen velmi velké soubory, je tento příkaz Shromáždění velmi užitečný, protože vám dává ukazatel průběhu:

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

Použil jsem to ke zkombinování a extrakci rozděleného archivu o velikosti 25 GB.

0
Zexelon

Myslím, že stojí za zmínku, že nástroj pro příkazový řádek unar je schopen rozbalit, rozbalit, rozbalit, rozbalit atd., Včetně rozdělených souborů, pouze s:

unar first_file

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

0
Guariba Som

Jen další příklad. Fungovalo to pro mě v bash rozdělit 3 GB instalátoru 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

Pro vícedílné Zip pocházející ze stahování na Disk Google jsem vyzkoušel několik vysvětlených metod, ale nefungoval (dobře). Nakonec bych to mohl udělat jednoduchým způsobem z terminálu: rozbalit název souboru.Zip.001, když jsem dokončil extrahování téhož s další částí: rozbalit název souboru.Zip.002 atd. ...

Další možnost: 7z x filename.Zip.001, když je dokončeno extrahování stejné s další částí: 7z x filename.Zip.002 a tak dále ...

0
carregul