Zipovat soubory na Linuxu s mnoha variantami a jak je používat

Někteří z nás už několik desítek let zipují v systémech Unix a Linux - abychom ušetřili místo na disku a soubory balíčků společně pro archivaci. Přesto existuje několik zajímavých variací na zip, které jsme ne všichni zkusili. V tomto příspěvku se tedy podíváme na standardní zipování a rozepínání a další zajímavé možnosti zipování.

[Dvouminutové tipy pro Linux: Naučte se, jak zvládnout řadu příkazů pro systém Linux v těchto dvouminutových videoprůvodcích]

Základní příkaz zip

Nejprve se podívejme na základní zip příkaz. Používá v podstatě stejný kompresní algoritmus jako gzip, ale existuje několik důležitých rozdílů. Pro jednu věc se příkaz gzip používá pouze pro komprimaci jediného souboru, kde zip může komprimovat soubory a spojit je do archivu. V jiném případě příkaz gzip „zapíná“. Jinými slovy, zanechává komprimovaný soubor - nikoli původní soubor vedle komprimované kopie. Zde je příklad gzip v práci:

$ gzip onefile $ ls -l -rw-rw-r-- 1 shs shs 10514 Jan 15 13:13 onefile.gz 

A tady je zip. Všimněte si, jak tento příkaz vyžaduje zadání názvu pro archiv ZIP, kde gzip jednoduše použije původní název souboru a přidá příponu .gz.

$ zip twofiles.zip soubor * přidání: file1 (vypuštěno 82%) přidání: file2 (vypuštěno 82%) $ ls -l -rw-rw-r-- 1 shs shs 58021 15. ledna 13:25 file1 -rw-rw- r-- 1 shs shs 58933 15. ledna 13:34 file2 -rw-rw-r-- 1 shs shs 21289 15. ledna 13:35 twofiles.zip 

Všimněte si také, že původní soubory tam stále sedí.

Množství místa na disku, které je uloženo (tj. Dosažený stupeň komprese), bude záviset na obsahu každého souboru. Variace v níže uvedeném příkladu jsou značné.

$ zip mybin.zip ~ / bin / * přidání: bin / 1 (vypuštěno 26%) přidání: bin / append (vypuštěno 64%) přidání: bin / BoD_meeting (vypuštěno 18%) přidání: bin / cpuhog1 (vypuštěno 14%) přidání: bin / cpuhog2 (uloženo 0%) přidání: bin / ff (vypuštěno 32%) přidání: bin / file.0 (vypuštěno 1%) přidání: bin / smyčka (vypuštěno 14%) přidání: bin / poznámky (vypuštěno 23) %) přidání: bin / vzory (uloženo 0%) přidání: bin / runme (uloženo 0%) přidání: bin / tryme (vypuštěno 13%) přidání: bin / tt (vypuštěno 6%) 

Příkaz unzip

rozbalit příkaz obnoví obsah ze souboru zip a, jak byste pravděpodobně předpokládali, ponecháte soubor zip neporušený, zatímco podobný příkaz gunzip by ponechal pouze nekomprimovaný soubor.

$ unzip twofiles.zip Archiv: twofiles.zip nafouknutí: file1 nafouknutí: file2 $ ls -l-rw-rw-r-- 1 shs shs 58021 15. ledna 13:25 file1 -rw-rw-r-- 1 shs shs 58933 15. ledna 13:34 file2 -rw-rw-r-- 1 shs shs 21289 15. ledna 13:35 twofiles.zip 

Příkaz zipcloak

zipcloak Příkaz zašifruje soubor zip, vyzve vás k zadání hesla dvakrát (aby bylo zajištěno, že jej „netlačíte prstem“) a ponechá soubor na místě. Můžete očekávat, že se velikost souboru bude trochu lišit od originálu.

$ zipcloak twofiles.zip Zadejte heslo: Ověřte heslo: šifrování: šifrování file1: file2 $ ls -l celkem 204 -rw-rw-r-- 1 shs shs 58021 15. ledna 13:25 file1 -rw-rw-r-- 1 shs shs 58933 15. ledna 13:34 file2 -rw-rw-r-- 1 shs shs 21313 15. ledna 13:46 twofiles.zip <== slightly larger than unencrypted version 

Mějte na paměti, že původní soubory tam stále zůstávají nezašifrované.

Příkaz zipdetails

zipdetails příkaz vám ukáže podrobnosti - a hodně o souborech se zipem, pravděpodobně mnohem více, než kolik byste chtěli absorbovat. I když se díváme na šifrovaný soubor, zipdetails zobrazuje názvy souborů spolu s daty modifikace souborů, informacemi o uživateli a skupině, délkou souboru atd. Mějte na paměti, že se jedná o všechna „metadata“. Nevidíme obsah souborů.

$ zipdetails twofiles.zip 0000 MÍSTNÍ HEADER # 1 04034B50 0004 Extrahujte Zip Spec 14 '2.0' 0005 Extrahujte OS 00 'MS-DOS' 0006 Příznak obecného účelu 0001 [Bit 0] 1 'Šifrování' [Bity 1-2] 1 'Maximum Komprese '0008 Metoda komprese 0008' Deflovaný '000A Last Mod Time 4E2F6B24' Út 15. ledna 13:25:08 2019 '000E CRC F1B115BD 0012 Komprimovaná délka 00002904 0016 nekomprimovaná délka 0000E2A5 001A Název souboru 0005 001C Extra délka 001C 001E Soubor23 '1 Extra ID # 0001 5455 'UT: Rozšířená časová známka' 0025 Délka 0009 0027 Příznaky '03 mod access '0028 Mod Time 5C3E2584' Út 15. ledna 13:25:08 2019 '002C Čas přístupu 5C3E27BB' Út 15. ledna 13:34:35 2019 '0030 Extra ID # 0002 7875' ux: Unix Extra Type 3 '0032 Délka 000B 0034 Verze 01 0035 UID Velikost 04 0036 UID 000003E8 003A GID Velikost 04 003B GID 000003E8 003F PAYLOAD 2943 MÍSTNÍ HEADER # 2 04034B50 2947 Výpis Zip Spec 14' 2.0 '2948 Extrahujte OS 00' MS-DOS '2949 Příznak obecného účelu 0001 [Bit 0] 1' Šifrování '[Bity 1-2] 1' Maximální komprese '294B C Ompression Method 0008 'Deflated' 294D Last Mod Time 4E2F6C56 'Út 15. ledna 13:34:44 2019' 2951 CRC EC214569 2955 Komprimovaná délka 00002913 2959D nekomprimovaná délka 0000E635 295D Název souboru 0005 295F Extra název 001C 2961 Název souboru file2 '2966 Extra ID # 0001 5455 'UT: Rozšířená časová známka' 2968 Délka 0009 296A Příznaky '03 mod přístup '296B Čas Mod 5C3E27C4' Út 15. ledna 13:34:44 2019 '296F Přístupový čas 5C3E27BD' Út 15. ledna 13:34:37 ​​2019 '2973 Extra ID # 0002 7875 'ux: Unix Extra Type 3' 2975 Délka 000B 2977 Verze 01 2978 UID Velikost 04 2979 UID 000003E8 297D GID Velikost 04 297E GID 000003E8 2982 PAYLOAD 5295 CENTRAL HEADER # 1 02014B50 5299 Vytvořeno Zip Spec 1E '3.0' 529A Vytvořeno OS 03 'Unix' 529B Extrahujte Zip Spec 14 '2.0' 529C Extrahujte OS 00 'MS-DOS' 529D Obecný příznak 0001 [Bit 0] 1 'Šifrování' [Bity 1-2] 1 'Maximální komprese' 529F Metoda komprese 0008 'Deflovaný' 52A1 Poslední mod čas 4E2F6B24 'Út 15. ledna 13:25:08 2019' 52A5 CRC F1B115BD 52A9 Stlačená délka 00002904 52AD Uncompr délka souboru 0000E2A5 52B1 Délka názvu souboru 0005 52B3 Extra délka 0018 52B5 Délka komentáře 0000 52B7 Začátek disku 0000 52B9 Int Atributy souboru 0001 [Bit 0] 1 Textová data 52BB Ext Atributy souboru 81B40000 52BF Posun souboru v záhlaví 00000000 52C3 Název souboru file1 '52C8 Extra ID # 0001 5455 'UT: Rozšířená časová známka' 52CA Délka 0005 52CC Příznaky '03 mod access '52CD Mod Time 5C3E2584' Út 15. ledna 13:25:08 2019 '52D1 Extra ID # 0002 7875' ux: Unix Extra Type 3 '52D3 Délka 000B 52D5 Verze 01 52D6 UID Velikost 04 52D7 UID 000003E8 52DB GID Velikost 04 52DC GID 000003E8 52E0 CENTRÁLNÍ HLAVICE # 2 02014B50 52E4 Vytvořeno Zip Spec 1E '3.0' 52E5 Vytvořeno OS 03 'Unix' 52E6 Extrahováno Zip Spec 14 '2.0' 52 007 Výpis OSE 'MS-DOS' 52E8 Příznak obecného účelu 0001 [Bit 0] 1 'Šifrování' [Bity 1-2] 1 'Maximální komprese' Metoda komprese 52EA 0008 'Deflovaný' 52EC Poslední mod čas 4E2F6C56 'Út 15. ledna 13:34:44 2019 '52F0 CRC EC214569 52F4 Stlačená délka 00002913 52F8 nekomprimovaná délka 0000E635 52FC Délka názvu souboru 0005 52FE Extra délka 0018 5300 Délka komentáře 0000 5302 Začátek disku 0000 5304 Int Atributy souboru 0001 [Bit 0] 1 Textová data 5306 Ext Atributy souboru 81B40000 530A Offset lokálního záhlaví 00002943 530E Název souboru 'file2' 5313 Extra ID # 0001 5455 'UT: Rozšířená časová známka' 5315 Délka 0005 5317 Příznaky '03 mod access '5318 Mod Time 5C3E27C4' Út 15. ledna 13:34:44 2019 '531C Extra ID # 0002 7875' ux: Unix Extra Type 3 '531E Délka 000B 5320 Verze 01 5321 UID Velikost 04 5322 UID 000003E8 5326 Velikost GID 04 5327 GID 000003E8 532B END CENTRAL HEADER 06054B50 532F Číslo tohoto disku 0000 5331 Central Dir Disk no 0000 5333 Záznamy na tomto disku 0002 5335 Celková položka 0002 5337 Velikost Central Dir 00000096 533B Offset na Central Dir 00005295 53F Délka 0000 Hotovo 

Příkaz zipgrep

zipgrep Příkaz použije funkci grep typu k vyhledání konkrétního obsahu ve vašich zipových souborech. Pokud je soubor zašifrován, budete muset zadat heslo poskytnuté pro šifrování pro každý soubor, který chcete prozkoumat. Pokud chcete zkontrolovat pouze obsah jednoho souboru z archivu, přidejte jeho název na konec příkazu zipgrep, jak je uvedeno níže.

$ zipgrep hazard twofiles.zip file1 heslo [file2iles.zip] file1: Určité pesticidy by měly být zakázány, protože jsou nebezpečné pro životní prostředí.. 

Příkaz zipinfo

zipinfo Příkaz poskytuje informace o obsahu souboru se zipem, ať už šifrovaného, ​​nebo ne. To zahrnuje názvy souborů, velikosti, data a oprávnění.

$ zipinfo twofiles.zip Archiv: twofiles.zip Velikost souboru ZIP: 21313 bajtů, počet záznamů: 2-rw-rw-r-- 3,0 unx 58021 Tx defN 19-leden-15 13:25 file1 -rw-rw-r - 3,0 unx 58933 Tx defN 19-leden-15 13:34 file2 2 souborů, nekomprimováno 116954 bytů, komprimováno 20991 bytů: 82,1% 

Příkaz zipnote

zipnote Příkaz lze použít k extrahování komentářů z archivů zip nebo k jejich přidání. Chcete-li zobrazit komentáře, stačí před příkazem uvést název archivu. Pokud doposud nebyly přidány žádné komentáře, uvidíte něco podobného:

$ zipnote twofiles.zip @ file1 @ (komentář nad tímto řádkem) @ file2 @ (komentář nad tímto řádkem) @ (komentář k souboru ZIP pod tímto řádkem) 

Pokud chcete přidat komentáře, zapište výstup z příkazu zipnote do souboru:

$ zipnote twofiles.zip> komentáře 

Dále upravte soubor, který jste právě vytvořili, a vložte své komentáře nad (komentář nad tímto řádkem) linky. Poté přidejte komentáře pomocí příkazu zipnote, jako je tento:

$ zipnote -w twofiles.zip < comments 

Příkaz zipsplit

zipsplit Příkaz lze použít k rozdělení archivu zip do více archivů ZIP, když je původní soubor příliš velký - možná proto, že se pokoušíte přidat jeden ze souborů na malou jednotku palce. Nejjednodušší způsob, jak toho dosáhnout, je určit maximální velikost pro každou část souboru se zipem. Tato velikost musí být dostatečně velká, aby pojala největší zahrnutý soubor.

$ zipsplit -n 12000 twofiles.zip Budou vytvořeny 2 soubory ZIP (100% účinnost): twofile1.zip vytvoří: twofile2.zip $ ls twofile * .zip -rw-rw-r-- 1 shs shs 10697 15. ledna 14 : 52 twofile1.zip -rw-rw-r-- 1 shs shs 10702 15. ledna 14:52 twofile2.zip -rw-rw-r-- 1 shs shs 21377 15. ledna 14:27 twofiles.zip 

Všimněte si, jak jsou extrahované soubory postupně pojmenovány "twofile1" a "twofile2".

Zabalit

zip příkaz spolu s některými jeho zipovacími krajany poskytuje velkou kontrolu nad tím, jak generujete a pracujete s archivem komprimovaných souborů.

[Viz také: Neocenitelné tipy a triky pro řešení problémů se systémem Linux] Připojte se ke komunitám World World na Facebooku a LinkedIn a přidávejte komentáře k tématům, která jsou na prvním místě.