Jak, aby Zip nebo Rozbalení Souborů Z Linuxového Terminálu
- Dave McKay
@TheGurkha
- Aktualizováno 28. Května 2019, 5:15 EDT
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 zip
unzip
. Ale je tam celou rodinu souvisejících služeb jako je zipcloak
zipdetails
zipsplit
zipinfo
.
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
instalovat chybějící prvky na CentOS 7, použijte následující příkaz:
sudo yum install perl-IO-Compress
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
Každý soubor je uveden jako to zní. Zobrazí se název souboru a množství komprese, které bylo v tomto souboru dosaženo.
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
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
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
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.
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/
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/
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/
maximální úroveň komprese je na úrovni 9.
zip -9 -r -q source_code work/
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/
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
Jako soubory jsou extrahovány jsou uvedeny do okna 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 zip
unzip
-q
(tichý) možnost, takže nemusíte vidět výpis souborů, jako jsou soubory extrahovány.
unzip -q source_code.zip
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
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
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
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
Přepsání Souborů
Předpokládejme, že jste extrahovali archiv, ale jste odstranili některé z extrahované soubory omylem.
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.
síla unzip
přepsat všechny existující soubory pomocí -o
(přepsat) možnost.
unzip -o -q source_code.zip
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
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
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
.
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
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
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.
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
můžeme vidět, že soubory slang.c
getval.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
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ář
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
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
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 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 “
Leave a Reply