Hur Zip eller Packa upp Filer Från Linux Terminal

0
31

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.