Konverze archivu ze zip do 7z

M Z

Konverze archivu ze zip do 7z
« kdy: 02. 09. 2019, 10:53:20 »
Ahoj,

potreboval bych konvertovat nekolik stovek zip archivu do 7z (s heslem a AES-256 sifrovanim). Neni problem napsat skript, ktery archivy po jednom extrahuje do tmp adresare a znovu zkomprimuje, ale to je dost nesikovne. Neexistuje nejaky tool, ktery by to umel bez ukladani na disk? Napsat neco v Pythonu nebo Perlu, co otevre jeden stream z existujiciho zip souboru a preda data do druheho pro zapis do noveho archivu nemuze byt takovy problem. Nejsem programator, takze si to mozna predstavuji moc jednoduse  :).

Dekuji predem a s pozdravem
M.Z.
« Poslední změna: 02. 09. 2019, 11:36:46 od Petr Krčmář »


Re:Konverze archivu ze zip do 7z.
« Odpověď #1 kdy: 02. 09. 2019, 11:08:41 »
Existuje... Vola sa to tmpfs. Rozbalis to do particie ktora je typ tmpfs  a je vyclenena z RAM a nasledne zbalis na disk.. Zvysok je otazka skriptu.
« Poslední změna: 02. 09. 2019, 11:13:46 od snuff1987 »

Re:Konverze archivu ze zip do 7z.
« Odpověď #2 kdy: 02. 09. 2019, 11:16:15 »
Souhlas, tmpfs je jediné rozumné řešení, nicméně i to je svým způsobem "na disk".
Přebalit to jen jako proud dat - jako např. u tarovaných archivů - zip opravdu nejde.
7zip navíc umí využít víc jader (s malou penalizací na kompresním poměru) - a k tomu potřebuje mít možnost přistupovat k vícero souborům naráz.

M Z

Re:Konverze archivu ze zip do 7z
« Odpověď #3 kdy: 02. 09. 2019, 15:39:45 »
Tak tmpfs by nebyl spatny napad, ale archivy maji stovky GB. Server ktery ma TB RAM mam jen jeden a na tohle ho vyuzit nemuzu 8). Neda se nic delat, bude to muset po jednom rozbalit na disk a zase zabalit.

Re:Konverze archivu ze zip do 7z
« Odpověď #4 kdy: 02. 09. 2019, 15:49:47 »
Tak tmpfs by nebyl spatny napad, ale archivy maji stovky GB. Server ktery ma TB RAM mam jen jeden a na tohle ho vyuzit nemuzu 8). Neda se nic delat, bude to muset po jednom rozbalit na disk a zase zabalit.

Možná by bylo na zváženou zabalit to při té příležitosti do taru a pak komprimovat. Maličko si asi uškodíte v kompresním poměru, ale v budoucnu se Vám podobná operace bude dělat líp - právě bez rozbalování na disk.


M Z

Re:Konverze archivu ze zip do 7z
« Odpověď #5 kdy: 02. 09. 2019, 15:57:05 »
Jsou to stovky GB velke archivy a zip ma na rozdil od tar moznost rychle zobrazit obsah archivu a extrahovat jednotlive soubory/adresare bez cteni celeho taru od zacatku. Obavam se, ze nic jineho nez zip, to byt nemuze.

Re:Konverze archivu ze zip do 7z
« Odpověď #6 kdy: 02. 09. 2019, 15:59:03 »
Jsou to stovky GB velke archivy a zip ma na rozdil od tar moznost rychle zobrazit obsah archivu a extrahovat jednotlive soubory/adresare bez cteni celeho taru od zacatku. Obavam se, ze nic jineho nez zip, to byt nemuze.

Jenže 7z nebo XZ takovou výhodu už nemají - mají solid archivaci, tj. je potřeba rozbalit vše před tím, než můžete seeknout k jednotlivému souboru. Pokud potřebujete tuto funkci, pak nemáte jinou možnost, než zůstat u běžného ZIPU.

crown

  • ****
  • 382
    • Zobrazit profil
Re:Konverze archivu ze zip do 7z
« Odpověď #7 kdy: 02. 09. 2019, 17:19:52 »
ta solid archivace tam sla zapnout/vypnout.

info treba zde https://sourceforge.net/p/sevenzip/discussion/45797/thread/feb72a3e/

Re:Konverze archivu ze zip do 7z
« Odpověď #8 kdy: 02. 09. 2019, 17:20:48 »
ta solid archivace tam sla zapnout/vypnout.

info treba zde https://sourceforge.net/p/sevenzip/discussion/45797/thread/feb72a3e/

To je pravda, ale pak nebude přínos komprese proti ZIP tak výrazný, zejm. ne na malých souborech u kterých bývá problém extrahovat jednotlivě.

Re:Konverze archivu ze zip do 7z
« Odpověď #9 kdy: 02. 09. 2019, 18:58:48 »
Jsou to stovky GB velke archivy a zip ma na rozdil od tar moznost rychle zobrazit obsah archivu a extrahovat jednotlive soubory/adresare bez cteni celeho taru od zacatku. Obavam se, ze nic jineho nez zip, to byt nemuze.

Tak tar asi taky nemusi nacitat .tar celý celý - to by odporovalo jeho použití na páskách, ne? Ale nevím, zda to funguje s kompresí.

Záleží taky co je obsahem těch archivů. Nadhodil bych ještě možnost komprimovaného filesystému, kde třeba v případě deduplikace můžete docílit značné efektivity využití úložného prostoru (v některých případech tedy to může vyjít lépe než u zip či 7z balíčků).

Re:Konverze archivu ze zip do 7z
« Odpověď #10 kdy: 02. 09. 2019, 19:02:28 »
Tak tar asi taky nemusi nacitat .tar celý celý - to by odporovalo jeho použití na páskách, ne? Ale nevím, zda to funguje s kompresí.

Je to přesně tak. Tar+komprese je vlastně solid archiv, proto i tar+gzip komprimoval vždy lépe, než samotný zip.
Rar, pokud se pamatuji, přišel se solid archivem a taky s archivací podle přípony (na dosu), čímž docílil toho, že podobné soubory se komprimovaly blízko sebe a tím docílil lepší komprese - něco tak na čtvrtině cesty mezi kompresí a kompresí s deduplikací.

Archivátor s vnitřní deduplikací neznám, ale docela by to mohlo být zajímavé, jen by asi bylo těžké určit velikost bloku pro deduplikaci. Malý blok = hodně režie. Velký blok = menší šance zásahu.

ByCzech

  • *****
  • 1 845
    • Zobrazit profil
    • E-mail
Re:Konverze archivu ze zip do 7z
« Odpověď #11 kdy: 02. 09. 2019, 19:06:30 »
Ahoj,

potreboval bych konvertovat nekolik stovek zip archivu do 7z (s heslem a AES-256 sifrovanim). Neni problem napsat skript, ktery archivy po jednom extrahuje do tmp adresare a znovu zkomprimuje, ale to je dost nesikovne. Neexistuje nejaky tool, ktery by to umel bez ukladani na disk? Napsat neco v Pythonu nebo Perlu, co otevre jeden stream z existujiciho zip souboru a preda data do druheho pro zapis do noveho archivu nemuze byt takovy problem. Nejsem programator, takze si to mozna predstavuji moc jednoduse  :).

Dekuji predem a s pozdravem
M.Z.

Ano jde to. 7z umí přidávat z stdin, viz parametr -si. Můžete si vyzkoušet:

Kód: [Vybrat]
echo "testovací data do archivu" | 7z -sipath/to/file/in/archive/testik.txt a newarchive
« Poslední změna: 02. 09. 2019, 19:08:41 od ByCzech »

ByCzech

  • *****
  • 1 845
    • Zobrazit profil
    • E-mail
Re:Konverze archivu ze zip do 7z
« Odpověď #12 kdy: 03. 09. 2019, 11:12:17 »
Stačí něco takového?

Re:Konverze archivu ze zip do 7z
« Odpověď #13 kdy: 03. 09. 2019, 11:28:26 »
Archivátor s vnitřní deduplikací neznám...

třeba lrzip se o něco takového snaží: https://github.com/ckolivas/lrzip

M Z

Re:Konverze archivu ze zip do 7z
« Odpověď #14 kdy: 05. 09. 2019, 09:55:06 »
Staci, presne neco takoveho jsem si predstavoval.
Dekuji.