ZIP-filer är ett universellt arkiv som ofta används på Windows, macOS, och även Linux-system. Du kan skapa ett zip-arkiv eller packa upp filer från en med några vanliga Linux terminal-kommandon.
ZIP-Komprimerat Arkiv-Format
Tack vare dominansen av ZIP-format i Windows-sfären, ZIP-filer är förmodligen den vanligaste formen av komprimerat arkiv i världen.
Samtidigt .tar.gz och tjära.bz2-filer är vanliga på Linux, Windows-användare kommer troligen att skicka dig ett arkiv i ZIP-format. Och, om du vill arkivera vissa filer och skicka dem till en Windows-användare, ZIP-format kommer att vara den enklaste, mest kompatibla lösning för alla.
RELATERAT: Hur du Extraherar Filer Från ett .tar.gz eller .tjära.bz2 Fil på Linux
zip, packa upp, och Andra Verktyg
Du kanske redan vet att Linux-och Unix-liknande operativsystem såsom macOS har verktyg för att låta dig skapa ZIP-filer och extrahera filer från dem, som kallas zip och packa upp. Men det finns en hel familj av relaterade verktyg såsom zipcloak, zipdetails, zipsplit , och zipinfo.
Vi kollade vissa Linux-distributioner för att se om de ingår dessa verktyg i standard installationen. Alla verktyg har funnits i Ubuntu 19.04, 18.10, och 18.04. De var också närvarande i Manjaro 18.04. Fedora 29 ingår zip och packa upp, men ingen av de andra verktyg och så var också fallet för CentOS.
För att installera de saknade delarna på Fedora 29, använd följande kommando:
sudo dnf installera perl-IO-Komprimera
För att installera de saknade delarna på CentOS 7, använd följande kommando:
sudo yum install perl-IO-Komprimera
Om någon av zip-verktyg saknas från en Linux-distribution som inte nämns ovan, att använda Linux-distribution är paketet verktyg för att installera nödvändiga paket.
Hur man Skapar en ZIP-Fil med zip-Kommandot
För att skapa en ZIP-fil, du måste berätta för zip-namnet på filen och vilka filer som ska ingå i den. Du behöver inte lägga till “.zip” förlängning till arkivet namn, men det gör ingen skada om du gör det.
För att skapa en fil som heter source_code.zip innehåller alla C-källkodsfiler och header-filer i den aktuella katalogen, skulle du använda detta kommando:
zip source_code *.c *.h
Varje fil är listad som den lagts till. Namnet på filen och graden av komprimering som uppnåddes på att filen ska visas.
Om du ser på den nya ZIP-arkiv, kan du se att den “.zip” file extension har lagts till automatiskt med blixtlås.
ls -l source_code.zip
Om du inte vill se produktionen från zip som ZIP-fil skapas, använd-q (tyst) alternativ.
zip -q source_code *.c *.h
Bland annat Kataloger i ZIP-Filer
Att inkludera underkataloger i ZIP-filen, använd-r (recursive) och innehålla namnet på underkatalogen på kommandoraden. För att skapa en ZIP-fil som tidigare och att även arkiv sub-katalog, använd detta kommando.
zip -r -q source_code arkiv/ *.c *.h
Att vara omtänksam till den person som kommer att extrahera filer från ZIP-filen som du skapar, det är ofta för artiga för att skapa ZIP-filer med filer inuti den finns i en katalog. När en person som får en ZIP-fil extrakter det, alla filer placeras prydligt i en katalog på datorn.
I det följande kommando kommer vi att arkivera arbete katalog och alla underkataloger. Observera att detta kommando är att utfärdas från den överordnade katalogen av arbetet mapp.
zip -r -q source_code arbete/
Inställning av Nivå av Kompression
Du kan ställa in hur mycket komprimering tillämpas på filer som läggs till i ZIP-arkiv. Intervallet är 0 till 9, där 0 är ingen komprimering alls. Ju högre komprimering, desto längre tid tar det att skapa en ZIP-fil. För måttligt storlek ZIP-filer, skillnaden är inte betydande straff. Men då, för måttligt storlek ZIP-filer, standard kompression (nivå 6) är förmodligen tillräckligt bra ändå.
För att få zip att använda en viss nivå av kompression, pass nummer som tillval på kommandoraden, med ett “-“, som denna:
zip–0 -r -q source_code arbete/
Standard kompression nivå 6. Det finns ingen anledning att ge -6 alternativet, men det kommer inte göra någon skada om du gör det.
zip -r -q source_code arbete/
Maximal komprimering nivån är nivå 9.
zip–9 -r -q source_code arbete/
Med valet av filer och kataloger som arkiveras här, skillnaden mellan ingen komprimering (nivå 0) och standard för komprimering (nivå 6) är 400K. Skillnaden mellan standard kompression och den högsta nivå av kompression (nivå 9) är bara 4K.
Det kanske inte verkar mycket, men för arkiv som innehåller hundratals eller tusentals filer, liten mängd extra kompression per fil skulle lägga till upp till ett värdefullt utrymme att spara.
Lägga till Lösenord för att ZIP-Filer
Lägga till lösenord för att ZIP-filer är enkel. Använda -e (kryptera) alternativ och du kommer att bli ombedd att ange ditt lösenord och mata in det för kontroll.
zip -e -r -q source_code arbete/
Hur Packa upp en ZIP-Fil Med det att packa upp med Kommandot
För att extrahera filer från ZIP-fil, använd kommando för att packa upp, och ge namnet på ZIP-filen. Notera att du behöver för att ge “.zip” för förlängning.
packa upp source_code.zip
Som filerna extraheras de är listade till terminalfönstret.
ZIP-filer inte bära information om filens ägare. Alla filer som har hämtats har ägaren satt till den användare som är att utvinna dem.
Precis som zip, packa upp a-q (tyst) alternativ, så att du inte behöver se filen lista som filerna extraheras.
packa upp -q source_code.zip
Extrahera Filerna till en Target-Katalog
Att ha filerna extraheras i en specifik katalog, använd-d (katalog) alternativ och ange sökvägen till den katalog du önskar arkivet tas ut i.
packa upp -q source_code.zip -d ./utveckling
Utdrag lösenordsskyddad ZIP-Filer
Om du har en ZIP fil som har skapats med ett lösenord, packa upp kommer att be dig om ditt lösenord. Om du inte anger rätt lösenord, packa upp kommer inte att extrahera filerna.
packa upp -q source_code.zip
Om du inte bryr dig om ditt lösenord så att andra inte—och inte heller om det som lagras i din kommandot historia—du kan ange lösenordet på kommandoraden med alternativet-S (lösenord) alternativ. (Du måste använda ett versalt “S.”)
packa upp -P femtio.sirap.cutlass -q source_code.zip
Exklusive Filer
Om du inte vill extrahera en viss fil eller en grupp av filer, använd -x (utesluta) alternativ. I detta exempel, att vi vill extrahera alla filer utom de som slutar i en “.h” förlängning.
packa upp -q source_code.zip -x *.h
Överskrivning Av Filer
Anta att du har extraherat ett arkiv, men du har tagit bort några av de extraherade filerna av misstag.
En snabb fix för det skulle vara att extrahera filerna igen. Men om du försöker att extrahera ZIP-filen i samma katalog som innan, packa upp kommer att fråga dig ett beslut om att skriva över filer. Det kommer att förvänta dig ett av följande svar.
Bortsett från r (byt namn) svar, dessa svar är skiftlägeskänsliga.
- y: Ja, skriva över denna fil
- n: Nej, du behöver inte skriva över denna fil
- A: Alla, skriv över alla filer
- N: Ingen, har inget att skriva över filer
- r: Byt namn, extrahera filen, men ge det ett nytt namn. Du kommer att bli ombedd att ange ett nytt namn.
För att tvinga packa upp för att skriva över befintliga filer-o (skriva) alternativ.
packa upp -o -q source_code.zip
Det mest effektiva sättet att ersätta filer som saknas skulle vara att få packa upp bara extrahera alla filer i arkivet är det inte i target-katalog. För att göra detta, använd-n (skriv aldrig över) alternativ.
packa upp -n source_code.zip
Titta Inuti en ZIP-Fil
Det är ofta nyttigt och lärorikt att se en lista över filerna i en ZIP-fil innan du extrahera den. Du kan göra detta med de -l (lista arkiv) alternativ. Det leds genom mindre att göra produktionen hanterbar.
packa upp zip -l source_code.zip | mindre
Produktionen visar kataloger och filer i ZIP-filen, längd och tid och datum de lades till i arkivet. Tryck “q” för att avsluta mindre.
Det finns andra sätt att kika i en ZIP-fil som ger olika typer av information, som vi skall se.
Lägg till ett Lösenord Med Kommandot zipcloak
Om du har skapat en ZIP-filen, men glömde att lägga till ett lösenord, vad kan du göra? Du kan snabbt lägga till ett lösenord till en ZIP-fil med zipcloak kommando. Skicka namnet på ZIP-filen på kommandoraden. Du kommer att bli tillfrågad om ett lösenord. Du måste bekräfta lösenordet genom att ange det en gång till.
zipcloak source_code.zip
Visa filinformation Med zipdetails Kommandot
Den zipdetails kommando kommer att visa dig en hel del information om ZIP-filen. Det enda vettiga sättet att hantera den del av produktionen, detta kommando kan ge är att röret igenom det mindre .
zipdetails source_code.zip | mindre
Observera att den information som kommer att omfatta filnamn även om ZIP-filen är lösenordsskyddad. Denna typ av information lagras i ZIP-filen meta-data och är inte del av krypterade data.
Sök Inne i Filen Med Kommandot zipgrep
Den zipgrep kommandot tillåter dig att söka i filer i en ZIP-fil. I följande exempel, vi vill veta vilka filer i ZIP-filen har texten “keyval.h” i dem.
zipgrep keyval.h source_code.zip
Vi kan se att de filer slang.c och getval.c innehåller strängen “keyval.h”.Vi kan också se att det finns två exemplar av var och en av dessa filer i olika kataloger i ZIP-filen.
Visa Information Med Kommandot zipinfo
Den zipinfo kommandot ger dig ännu ett sätt att titta i en ZIP-fil. Som innan, vi rör produktionen genom färre.
zipinfo source_code.zip | mindre
Från vänster till höger utgång visar:
- Filrättigheter
- Den version av verktyget som används för att skapa ZIP-filen
- Den ursprungliga filstorleken
- En fil deskriptor (beskrivs nedan).
- Den metod för komprimering (deflation, i det här fallet)
- Data-och tidsstämpel
- Namnet på filen och någon katalog
Filen deskriptor består av två tecken. Det första tecknet kommer att vara ett “t” eller ett “b” för att ange en text eller binär fil. Om det är en bokstav filen är krypterad. Andra tecken kan vara en av fyra tecken. Detta tecken representerar vilken typ av meta-data ingår för denna fil: ingen, en utökad lokal header, en “extra fält”, eller både och.
- -: Om ingen finns, karaktär kommer att vara ett bindestreck
- l: om det är en utökad lokal header, men inget extra fält
- x: om det inte finns någon utökad lokal header, men det är ett extra fält
- X: om det är en utökad lokal header och det är ett extra fält
Dela Filen Med Kommandot zipsplit
Om du behöver skicka ZIP-filen till någon annan men det finns stora begränsningar eller problem med överföringen av filen, kan du använda zipsplit kommando för att dela upp den ursprungliga ZIP-filen i en uppsättning mindre ZIP-filer.
-N (storlek) alternativet kan du ange en maximal storlek för var och en av de nya ZIP-filer. I detta exempel kommer vi att dela upp source_code.zip fil. Vi vill inte att någon av de nya ZIP-filer att vara större än 100 KB (102.400 byte).
zipsplit -n 102400 source_code.zip
Den storlek som du väljer kan inte vara mindre än storleken på någon av filerna i ZIP-filen.
Med hjälp av dessa kommandon kan du skapa din egen ZIP-filer, packa upp ZIP-filer du tar emot och utföra diverse andra operationer på dem utan att någonsin lämna Linux terminal.