Skapa och redigera zip-filer i Linux med hjälp av terminalen

I en tidigare artikel beskrev vi hur man använder kommandot tar för att skapa arkiv. Även om tar är ett mycket vanligt komprimeringsschema för Linux , är det inte alls lika populärt för Windows- och Mac OS X -användare, som kommer att hitta de flesta av sina arkiv skapade med zip-formatet.

Det är lätt att använda Zip (för att skapa) och Unzip (för att utöka) arkiv i Linux . Faktum är att de flesta GUI- arkivhanteringsprogram (som Ark , File Roller och Xarchiver ), fungerar som en frontend till i stort sett alla kommandoradsarkiveringsprogram du har på din dator, och Zip är inget undantag. Självklart kan vi också använda Zip från terminalen(Terminal) . Här är hur.

Det första steget, som du kanske gissar, är att öppna terminalen(Terminal) .

01Öppen_Terminal

Skriv sedan " sudo apt-get install zip unzip " (utan citattecken), bara för att se till att vi har zip och unzip installerat.

02Installera_Zip_och_Unzip

Obs: om dessa två program redan är installerade kommer du att få ett meddelande om att så är fallet, som visas ovan.(Note: if those two programs are already installed, you’ll receive a message stating this to be the case, as shown above.)

När det väl är installerat kan vi använda zip för att skapa arkiv (eller modifiera befintliga) och packa upp för att utöka dem till sina original. För den här artikelns skull skapar vi en ny mapp på vårt skrivbord(Desktop) , kallad Stuff . I terminalen(Terminal) kan vi göra det med ett enda kommando – mkdir /home/username/Desktop/Stuff (du kommer givetvis att ersätta "användarnamn" med ditt eget användarnamn, som visas nedan, och om du redan har en Stuff -mapp på ditt skrivbord(Desktop) vill du ändra namnet).

03Make_Stuff_Directory

Nu när vi har en Stuff -mapp, använder vi kommandot 'cd' för att göra Stuff - mappen till vår nuvarande arbetskatalog.

cd /home/username/Desktop/Stuff

Skriv nu touch doc1.txt doc2.txt doc3.txt && mkdir Filer(touch doc1.txt doc2.txt doc3.txt && mkdir Files) i din terminal , vilket skapar en mapp som heter Filer(Files) , samt tre dokument – ​​doc1.txt, doc2.txt och doc3.txt – i mappen Stuff .

04Make_Docs

Ytterligare ett kommando, att "cd" till den nyskapade mappen Filer(Files) (cd Files ), eftersom vi vill ha några andra dokument i den.

cd-filer(cd Files)

Skriv slutligen touch doc4.txt doc5.txt doc6.txt för att skapa tre nya dokument.

05Make_More_Docs

Skriv nu cd ../.. för att ändra skrivbordet(Desktop) tillbaka till arbetskatalogen.

06CD_Back_To_Desktop

Vårt näst sista steg innan du skapar en zip-fil är att skapa ett par "extra" dokument på skrivbordet(Desktop) med samma namn som filer vi just skapade, så skriv tryck på doc2.txt doc3.txt(touch doc2.txt doc3.txt) för att skapa dem.

07Create_Duplicate_Docs

Öppna slutligen var och en av de två "extra" textfilerna och lägg till lite text till dem. Det behöver inte vara något meningsfullt (eller långt), bara så att vi kan se att dessa dokument verkligen skiljer sig från de som redan skapats i mapparna Stuff och filer.

När det är gjort kan vi börja skapa våra zip-filer. Det enklaste sättet att använda zip är att berätta för det namnet på zip-arkivet du vill skapa och sedan uttryckligen namnge varje fil som ska läggas in i den. Så, om vi antar att vår arbetskatalog är skrivbordet(Desktop) , skulle vi skriva zip test Stuff/doc1.txt Stuff/doc2.txt Stuff/doc3.txt för att skapa ett arkiv som heter test.zip (vi behöver inte använda ".zip" ” förlängning i kommandot, eftersom det kommer att läggas till automatiskt), som skulle innehålla doc1.txt, doc2.txt och doc3.txt som finns i mappen Stuff .

08Create_First_Archive

Du kommer att se lite utdata, som informerar oss om att tre dokument (doc1.txt, doc2.txt och doc3.txt) har lagts till i arkivet.

09First_Archive_Output

Vi kan testa detta genom att dubbelklicka på arkivet, som ska finnas på vårt skrivbord(Desktop) . Om du gör det bör det öppnas i standardarkivprogrammet ( Ark i KDE , File Roller i GNOME och Xarchiver i Xfce ).

10Öppna_i_arkivprogram

Hur är det nu med mappen Filer? Om vi ​​antar att vi vill ha det, lägg till dokumenten i det också i vårt arkiv, vi skulle kunna använda samma kommando som ovan, men lägg till Stuff/Files/* i slutet av kommandot.

11Add_To_Archive

Asterisken betyder att allt ingår i mappen. Så om det hade funnits en annan mapp i mappen Filer(Files) , skulle den också ha lagts till. Men om den mappen hade föremål inuti den kommer de inte att inkluderas. För att göra det skulle vi behöva lägga till -r (som står för rekursivt eller rekursivt).

12Add_Rekursivt

Det bör noteras att ovanstående två kommandon inte är designade för att "lägga till" filer i ett zip-arkiv; de är designade för att skapa en. Men eftersom arkivet redan finns lägger kommandot helt enkelt till alla nya filer i det befintliga arkivet.  Hade(Had) velat skapa detta arkiv på en gång (istället för de tre stegen vi har utfört för att gradvis lägga till filer i det för utbildningsändamål), kunde vi helt enkelt ha skrivit zip -r test Stuff/* och skulle ha skapat samma arkiv.

13Skapa_Rekursivt

Du kommer att märka från kommandot och utgången att de tre filerna i mappen Stuff ingår, såväl som de tre dokumenten i mappen Filer(Files) , så allt gjordes med ett trevligt, enkelt kommando.

Hur är det nu med de två "extra" dokumenten vi skapade på vårt skrivbord(Desktop)Tja(Well) , hur zip fungerar är att om du försöker lägga till en fil i ett arkiv som redan finns i arkivet kommer de nya filerna att skriva över de gamla. Så eftersom dokumenten vi skapade på vårt skrivbord(Desktop) (doc2.txt och doc3.txt) har innehåll (vi la till "hej världen!" till doc2.txt och "yay" till doc3.txt), borde vi kunna lägga till dessa dokument och sedan kunna testa detta.  Först(First) drar vi de två "extra" dokumenten till mappen Stuff .

Du kommer sannolikt att bli tillfrågad om du vill att de nya dokumenten ska skriva över de befintliga (detta finns i mappen, kom ihåg, inte zip-arkivet), så låt detta hända.

Nu när detta är gjort, låt oss lägga till dem i arkivet genom att skriva zip test Stuff/doc2.txt Stuff/doc3.txt

14Lägga till_filer_till_arkiv

Du kommer att märka att kommandot ovan nu visar filer som uppdateras istället för att läggas till. Om vi ​​nu kontrollerar arkivet kommer vi att märka att filerna ser ut att vara desamma, men när doc2.txt och doc3.txt öppnas ser du att de nu har innehåll i dem, istället för att vara tomma som våra originalfiler var.

Ibland i Linux ser du att vissa filer är dolda genom att lägga till en punkt (“.”) i början av filnamnet. Detta är särskilt vanligt för konfigurationsfiler, som behöver existera, men som ofta inte är synliga (vilket underlättar röran och gör det mindre sannolikt att en konfigurationsfil kommer att raderas av misstag). Vi kan lägga till dessa i en zip-fil ganska enkelt.  Låt oss först(First) anta att vi vill skapa en zip-fil som heter säkerhetskopiering av varje fil i en katalog. Vi kan göra det genom att skriva zip backup * i terminalen.

15Lägg till_alla_filer

Detta kommer att lägga till alla filer och mappar, även om alla objekt i den mappen inte kommer att inkluderas. För att lägga till dem skulle vi lägga till -r igen, så att zip -r backup * skulle vara kommandot.

16Add_Files_Recursively

Nu är vi nästan framme. För att rekursivt lägga till mappar, filer och dolda filer är kommandot faktiskt väldigt enkelt: zip -r backup .

17Add_Files_Recursively_And_Hidden

Nu är det ganska enkelt att packa upp. Innan vi gör något, fortsätt dock och ta bort dokumenten på skrivbordet(Desktop) (doc2.txt och doc3.txt) samt mappen Stuff . När de är borta, genom att skriva unzip test.zip utökas innehållet i vårt ursprungliga zippade arkiv till din nuvarande katalog.

18Unzip_Archive

Obs: Om vi ​​inte hade tagit bort dokumenten, skulle vi försöka packa upp innehållet i vår zip-fil till en befintlig fil, så vi fick frågan om vi ville ersätta varje dokument.

Och det är allt! Att zippa och packa upp(Unzipping) är en ganska vanlig uppgift, och även om det verkligen finns GUI- alternativ tillgängliga, med övning kommer du att upptäcka att det inte är särskilt svårt att utföra samma uppgifter från terminalen(Terminal) heller.



About the author

Jag är en erfaren mjukvaruingenjör med över 10 års erfarenhet av att utveckla och hantera användarkonton, familjesäkerhet och Google Chrome-teknik. Jag har en stark grund inom matematik och datavetenskap som jag använder för att skapa tydliga, kortfattade beskrivningar av mina färdigheter.



Related posts