Articles

Jak, aby Zip nebo Rozbalení Souborů Z Linuxového Terminálu

  • Dave McKay

    @TheGurkha

  • Aktualizováno 28. Května 2019, 5:15 EDT
Linux shell prompt
Fatmawati Achmad Zaenuri/.com

ZIP soubory jsou univerzální archiv běžně používané v systému Windows, macOS, a dokonce i Linux. Můžete vytvořit zip archiv nebo rozbalit soubory z jednoho s některými běžnými příkazy terminálu Linux.

Formát komprimovaného archivu ZIP

díky dominanci formátu ZIP v oblasti Windows jsou soubory ZIP pravděpodobně nejběžnější formou komprimovaného archivu na světě.

zatímco .dehet.soubory gz a tar.bz2 jsou v systému Linux běžné, uživatelé systému Windows vám pravděpodobně pošlou archiv ve formátu ZIP. A pokud chcete archivovat některé soubory a odeslat je uživateli systému Windows, bude formát ZIP nejjednodušším a nejkompatibilnějším řešením pro každého.

SOUVISEJÍCÍ: Jak extrahovat soubory z.dehet.gz nebo .dehet.bz2 Souboru na Linuxu

zip, unzip, a Další Nástroje

možná už víte, že Linux a Unix-jako operační systémy, jako jsou macOS mít nástroje, které vám umožní vytvořit ZIP soubory a extrahovat soubory z nich, s názvem zipunzip. Ale je tam celou rodinu souvisejících služeb jako je zipcloakzipdetailszipsplitzipinfo.

reklama

zkontrolovali jsme některé distribuce Linuxu, abychom zjistili, zda tyto nástroje zahrnovaly do standardní instalace. Všechny nástroje byly přítomny v Ubuntu 19.04, 18.10 a 18.04. Byli také přítomni v Manjaro 18.04. Fedora 29 zahrnovala zip a unzip, ale žádný z dalších nástrojů a to byl také případ CentOS.

Chcete-li nainstalovat chybějící prvky na Fedoru 29, použijte následující příkaz:

sudo dnf install perl-IO-Compress

zip příkaz instalace pro Fedora

instalovat chybějící prvky na CentOS 7, použijte následující příkaz:

sudo yum install perl-IO-Compress

Zip install Centos

Reklama

Pokud se kterýkoli z zip utility chybí z Linux distribuce, která nebyla již bylo uvedeno výše, použít Linux distribuce je nástroj pro správu balíčků chcete-li nainstalovat potřebný balíček.

Jak Vytvořit Soubor ZIP s zip Příkaz

vytvořit ZIP soubor, budete muset říct, zip název archivního souboru, a soubory, které chcete zahrnout. Nemusíte přidávat „.zip “ rozšíření na název archivu, ale to není na škodu, pokud tak učiníte.

vytvořte soubor s názvem source_code.zip obsahující všechny C zdrojový kód soubory a hlavičkové soubory v aktuálním adresáři, měli byste použít tento příkaz:

zip source_code *.c *.h

zip příkaz v okně terminálu

Každý soubor je uveden jako to zní. Zobrazí se název souboru a množství komprese, které bylo v tomto souboru dosaženo.

výstup z zip příkaz v okně terminálu

Reklama

Pokud se podíváte na nový ZIP archivu, můžete vidět, že „.přípona souboru zip byla přidána automaticky pomocí zip.

ls -l source_code.zip

je na zip archive v okně terminálu

Pokud nechcete vidět výstup z zip jako ZIP soubor je vytvořen pomocí -q (tichý) možnost.

zip -q source_code *.c *.h

-q quiet v okně terminálu

Včetně Adresáře v ZIP Souborů

zahrnout sub-adresáře v ZIP souboru, použijte -r (rekurzivní) možnost a obsahovat název sub-adresáře na příkazovém řádku. Chcete-li vytvořit soubor ZIP jako dříve a také zahrnout podadresář archiv, použijte tento příkaz.

zip -r -q source_code archive/ *.c *.h

-r rekurzivní možnost v okně terminálu

být ohleduplný k osobě, která bude extrakci souborů ze ZIP souboru, který vytváříte, je často zdvořilý vytvořit ZIP soubory se soubory uvnitř obsažené v adresáři. Když osoba, která obdrží soubor ZIP extrahuje, všechny soubory jsou umístěny úhledně v adresáři na svém počítači.

Reklama

V následujícím příkazu, budeme archivovat work adresář a všechny podadresáře. Všimněte si, že tento příkaz je vydán z nadřazeného adresáře složky work.

zip -r -q source_code work/

zipování pracovní adresář v okně terminálu

Nastavení Úrovně Komprese

můžete nastavit, kolik komprese je aplikován na soubory, které jsou přidány do ZIP archivu. Rozsah je od 0 do 9, přičemž 0 není vůbec žádná komprese. Čím vyšší je komprese, tím déle trvá vytvoření souboru ZIP. Pro skromně velké soubory ZIP není časový rozdíl významným trestem. Ale pak, pro skromné velikosti ZIP souborů, výchozí komprese (úroveň 6) je pravděpodobně dost dobrý stejně.

zip použít konkrétní úroveň komprese, přenést číslo jako volba na příkazovém řádku s „-„, jako je tento:

zip -0 -r -q source_code work/

-0 možnost komprese v okně terminálu

výchozí úroveň komprese je 6. Není třeba zadávat volbu -6, ale pokud tak učiníte, neublíží to.

zip -r -q source_code work/

úrovni 6 komprese v okně terminálu

maximální úroveň komprese je na úrovni 9.

zip -9 -r -q source_code work/

-9 komprese v okně terminálu

Reklama

S výběrem souborů a adresářů je zde archivovány, rozdíl mezi ne komprese (úroveň 0) a výchozí komprese (úroveň 6) je 400K. Rozdíl mezi výchozí komprese a nejvyšší úroveň komprese (úroveň 9) je pouze 4K.

To nemusí zdát moc, ale pro archiv obsahující stovky nebo dokonce tisíce souborů, malé množství extra komprese na soubor, který chcete přidat do vyplatí, úspora místa.

přidání hesel do souborů ZIP

přidání hesel do souborů ZIP je snadné. Použijte volbu -e (šifrování) a budete vyzváni k zadání hesla a opětovnému zadání pro ověření.

zip -e -r -q source_code work/

Přidání hesla pro zip soubory v okně terminálu

Jak Rozbalit ZIP Soubor rozbalte Příkaz

extrahovat soubory ze ZIP souboru, použijte rozbalit příkaz a zadat název souboru ZIP. Všimněte si, že je třeba poskytnout“.zip “ rozšíření.

unzip source_code.zip

rozbalte příkaz v okně terminálu

Reklama

Jako soubory jsou extrahovány jsou uvedeny do okna terminálu.

výstup rozbalení v okně terminálu

soubory ZIP nenesou podrobnosti o vlastnictví souboru. Všechny soubory, které jsou extrahovány, mají vlastníka nastaveného na uživatele, který je extrahuje.

Stejně jako zipunzip-q (tichý) možnost, takže nemusíte vidět výpis souborů, jako jsou soubory extrahovány.

unzip -q source_code.zip

rozbalte -q možnost v okně terminálu

Extrahování Souborů do Cílového Adresáře

mít rozbalené soubory v určitém adresáři, použijte -d (adresář) možnost, a zadejte cestu k adresáři, který chcete archiv rozbalit do.

unzip -q source_code.zip -d ./development

rozbalit do cílového adresáře v okně terminálu

Extrahovat Chráněné Heslem ZIP Souborů

Pokud ZIP soubor byl vytvořen s heslem, unzip bude ptát na heslo. Pokud neposkytnete správné heslo, unzip nebude extrahovat soubory.

unzip -q source_code.zip

rozbalit s heslem příkaz v okně terminálu

Reklama

Pokud nechcete starat o své heslo, aby vidí ostatní—ani se o to budou uloženy ve vaší historii příkazů—můžete zadat heslo na příkazovém řádku pomocí -P (heslo) možnost. (Musíte použít velké “ P.“)

unzip -P fifty.treacle.cutlass -q source_code.zip

rozepínací s heslem možnost v okně terminálu

Kromě Souborů

Pokud nechcete extrahovat konkrétní soubor nebo skupina souborů, použijte -x (vyloučit) možnost. V tomto příkladu chceme extrahovat všechny soubory kromě těch, které končí na“.h “ rozšíření.

unzip -q source_code.zip -x *.h

rozbalit vyloučit možnost v okně terminálu

Přepsání Souborů

Předpokládejme, že jste extrahovali archiv, ale jste odstranili některé z extrahované soubory omylem.

reklama

rychlou opravou by bylo znovu extrahovat soubory. Pokud se však pokusíte extrahovat soubor ZIP ve stejném adresáři jako dříve, unzip vás vyzve k rozhodnutí o přepsání souborů. Očekává jednu z následujících odpovědí.

kromě odpovědi r (přejmenovat) jsou tyto odpovědi citlivé na velká a malá písmena.

  • y: Ano, přepsat tento soubor
  • n: Ne, ne přepsat tento soubor
  • A: Všechny, přepsat všechny soubory
  • N: None, přepisovat žádné soubory
  • r: Přejmenovat, rozbalit tento soubor, ale dát mu nový název. Budete vyzváni k zadání nového jména.

přepsat pokynů v okně terminálu

síla unzip přepsat všechny existující soubory pomocí -o (přepsat) možnost.

unzip -o -q source_code.zip

přepsat možnost v okně terminálu

nejúčinnější způsob, jak nahradit chybějící soubory by být unzip jen extrahovat všechny soubory v archivu, které nejsou v cílovém adresáři. Chcete-li to provést, použijte volbu -n (nikdy nepřepisovat).

unzip -n source_code.zip

rozbalte s -n nikdy přepsat možnost v okně terminálu

hledání Uvnitř ZIP Souboru

To je často užitečné a poučné vidět seznam souborů uvnitř ZIP souboru, než budete extrahovat. Můžete to provést pomocí volby -l (archiv seznamu). Je veden přes less, aby byl výstup zvládnutelný.

unzip -l source_code.zip | less

rozbalte seznam možností v okně terminálu

Reklama

výstup zobrazí adresáře a soubory v ZIP souboru, jejich délka a čas a datum byly přidány do archivu. Stiskněte “ q „pro ukončení z less.

seznam archivních výstup v okně terminálu

Existují i jiné způsoby, jak peek uvnitř ZIP soubor, který dávají různé typy informací, jak uvidíme.

přidejte heslo příkazem zipcloak

Pokud jste vytvořili soubor ZIP, ale zapomněli jste přidat heslo, co můžete dělat? Heslo můžete rychle přidat do souboru ZIP pomocí příkazu zipcloak. Na příkazovém řádku zadejte název souboru ZIP. Budete vyzváni k zadání hesla. Heslo musíte ověřit zadáním podruhé.

zipcloak source_code.zip

zipcloak v okně terminálu

Zobrazit Podrobnosti o Souboru S zipdetails Příkaz

zipdetails příkaz vám ukáže mnoho informací o souboru ZIP. Jediným rozumným způsobem, jak zvládnout množství výstupu, které tento příkaz může poskytnout, je potrubí přes less .

zipdetails source_code.zip | less

zipdetails příkaz v okně terminálu

Reklama

Všimněte si, že tyto informace zahrnují názvy souborů i pokud soubor ZIP je chráněn heslem. Tento typ informací je uložen v souboru ZIP jako metadata a není součástí šifrovaných dat.

výstup zipdetails v okně terminálu

Hledat Uvnitř Souboru S zipgrep Příkaz

zipgrep příkaz umožňuje vyhledávání v rámci soubory v souboru ZIP. V následujícím příkladu chceme vědět, které soubory v souboru ZIP mají text “ keyval.h “ v nich.

zipgrep keyval.h source_code.zip

zipgrep příkaz v okně terminálu

můžeme vidět, že soubory slang.cgetval.c obsahují řetězec „keyval.h”.Vidíme také, že v souboru ZIP jsou dvě kopie každého z těchto souborů v různých adresářích.

Zobrazení informací pomocí příkazu zipinfo

příkaz zipinfo vám dává další způsob, jak se podívat do souboru ZIP. Stejně jako dříve, výstup potrubí přes less.

zipinfo source_code.zip | less

zipinfo příkaz v okně terminálu

zleva doprava výstup ukazuje:

  • oprávnění souborů
  • verze nástroje použitého k vytvoření souboru ZIP
  • původní velikost souboru
  • popisovač souboru (popsáno níže)
  • metoda komprese (deflace, v tomto případě)
  • data a časové razítko
  • název souboru a adresář
Reklama

deskriptor souboru se skládá ze dvou znaků. První znak bude “ t „nebo“ b “ pro označení textového nebo binárního souboru. Pokud se jedná o velké písmeno, soubor je zašifrován. Druhý znak může být jeden ze čtyř znaků. Tento znak představuje, jaký typ metadat je pro tento soubor zahrnut: žádný, rozšířená lokální záhlaví, „extra pole“ nebo obojí.

  • -: Pokud neexistuje ani jeden, znak spojovník
  • l: jestli tam je rozšířená místní záhlaví, ale ne extra pole
  • x: pokud není prodloužena místní záhlaví, ale je zde navíc pole
  • X: pokud tam je rozšířená místní záhlaví a tam je navíc pole

zipinfo výstup v okně terminálu

Rozdělit Soubor S zipsplit Příkaz

Pokud potřebujete poslat ZIP soubor na někoho jiného, ale tam jsou omezení velikosti nebo problémy s přenosem souboru, můžete použít zipsplit příkaz rozdělit původní ZIP soubor do menších souborů ZIP.

volba -n (velikost) umožňuje nastavit maximální velikost pro každý z nových souborů ZIP. V tomto příkladu rozdělujeme soubor source_code.zip. Nechceme, aby některý z nových souborů ZIP byl větší než 100 KB (102400 bajtů).

zipsplit -n 102400 source_code.zip

zipsplit příkaz v okně terminálu

Reklama

velikosti, které si vyberete nemůže být menší než velikost všech souborů v ZIP souboru.

pomocí těchto příkazů můžete vytvářet vlastní soubory ZIP, rozbalovat soubory ZIP, které obdržíte, a provádět s nimi různé další operace, aniž byste opustili terminál Linux.

Dave McKay
Dave McKay poprvé použil počítače, když byla děrovaná papírová páska v módě, a od té doby programuje. Po více než 30 letech v IT průmyslu je nyní technologickým novinářem na plný úvazek. Během své kariéry pracoval jako programátor na volné noze, manažer mezinárodního týmu pro vývoj softwaru, projektový manažer IT služeb a naposledy jako Pověřenec pro ochranu osobních údajů. Dave je Evangelista Linuxu a obhájce open source.Číst celé Bio “