Hvordan komprimere filer ved hjelp av Linux-kommandolinjen
Det finnes en rekke forskjellige måter å komprimere filer ved å bruke Linux kommandolinje. Denne artikkelen inneholder praktiske eksempler som viser hvordan du bruker zip-kommando for å komprimere og organisere filer i filsystemet.
Zippede filer brukes når du trenger å spare plass og kopiere store filer fra et sted til et annet.
Hvis du har 10 filer som alle er 100 megabyte store, og du må overføre dem til et ftp-nettsted, kan overføringen ta mye tid, avhengig av prosessorhastigheten. Hvis du komprimerer alle 10 filene til en enkelt zippet arkiv og kompresjon reduserer filstørrelsen til 50MB per fil, da trenger du bare å overføre halvparten så mye data.

Hvordan lage et arkiv av alle filene i en mappe
Tenk deg at du har en mappe med sanger med følgende MP3-filer:
AC/DC motorvei til helvete
Night Prowler.mp3.
Elsker sulten mann.mp3.
Get It Hot.mp3.
Gå over deg.mp3.
Motorveien til helvete mp3.
Hvis du vil ha blod, har du det.mp3.
Vis ned i flammer.mp3.
Berør for mye.mp3.
Slå rundt busken.mp3.
Jenter fikk rytme.mp3.
Denne enkle Linux-kommandoen som illustrerer hvordan du oppretter et arkiv med alle filene i gjeldende mappe kalt ACDC_Highway_to_Hell.zip:
zip ACDC_Highway_to_Hell *
Tekst ruller oppover på skjermen og viser filene mens de legges til.
Hvordan inkludere skjulte filer i et arkiv
Den forrige kommandoen er fin for å arkivere alle filene i en mappe, men den inkluderer bare filer som ikke er skjult. Det er ikke alltid så enkelt. Tenk deg at du ønsket å zippe hjemmemappen din slik at du kan sikkerhetskopiere den til en USB-stasjon eller ekstern harddisk. Hjemmemappen din inneholder skjulte filer.
For å komprimere alle filene inkludert skjulte filer i en mappe, kjør følgende kommando:
zip hjem * .*
Dette lager en fil kalt home.zip med alle filene i hjemmemappen. (Du må være i hjemmemappen for at dette skal fungere). Problemet med denne kommandoen er at den bare inkluderer filene i hjemmemappen og ikke mappene, noe som bringer oss til neste eksempel.
Hvordan arkivere alle filer og undermapper i en zip-fil
For å inkludere alle filene og undermappene i et arkiv, kjør følgende kommando:
zip -r hjem.
Hvordan legge til nye filer til et eksisterende zippet arkiv
Hvis du vil legge til nye filer i et eksisterende arkiv eller oppdatere filene i et arkiv, bruker du samme navn på arkivfilen når du kjører zip-kommandoen.
Tenk deg for eksempel at du har en musikkmappe med fire album i den, og at du oppretter et arkiv kalt music.zip for å beholde som en sikkerhetskopi. Tenk deg nå en uke senere Last ned to nye album. For å legge til de nye albumene i zip-filen, kjør ganske enkelt den samme zip-kommandoen som du gjorde forrige uke.
For å lage det originale musikkarkivet, kjør følgende kode:
zip -r musikk /home/dittnavn/musikk/
For å legge til nye filer til arkivet, kjør den samme kommandoen på nytt.
Hvis zip-filen har en liste over filer og en av filene på disken er endret, blir den endrede filen oppdatert i zip-filen.
Slik oppdaterer du eksisterende filer i et zippet arkiv
Hvis du har en zip-fil som skal inneholde de samme filnavnene hver gang og du vil oppdatere den filen med eventuelle endringer som er gjort i disse filene, -f bryteren hjelper deg med dette.
Tenk deg for eksempel at du har en zippet fil med følgende filer:
/home/yourname/documents/file1.
/home/yourname/documents/file2.
/home/yourname/documents/file3.
/home/yourname/documents/file4.
/home/yourname/documents/file5.
/home/yourname/documents/file6.
Tenk deg nå at du i løpet av uken la til to nye filer og endret to filer slik at mappen /home/dittnavn/dokumenter nå ser slik ut:
/home/yourname/documents/file1.
/home/yourname/documents/file2.
/home/yourname/documents/file3.
/home/dittnavn/dokumenter/fil4 (oppdatert)
/home/dittnavn/dokumenter/fil5 (oppdatert)
/home/yourname/documents/file6.
/home/yourname/documents/file7.
/home/yourname/documents/file8.
Når du kjører følgende kommando, vil zip-filen inneholde de oppdaterte filene (fil4 og fil5), men fil7 og fil8 vil ikke bli lagt til.
zip zipfilename -f -r /home/dittnavn/dokumenter.
Slik sletter du filer fra et zippet arkiv
Så du opprettet en massiv zip-fil med hundrevis av filer og innser nå at det er fire eller fem filer i zip-filen som du ikke trenger der. Uten å måtte zippe alle disse filene igjen, kan du bare kjøre zip-kommandoen med -d bytte som følger:
zip zipfilename -d [navn på fil i arkiv]
Hvis du for eksempel har en fil i arkivet med navnet home/documents/test.txt, sletter du den med denne kommandoen:
zip zipfilename -d home/documents/test.txt.
Hvordan kopiere filer fra en zip-fil til en annen
Hvis du har filer i en zip-fil og du vil kopiere dem til en annen zip-fil uten å pakke dem ut først og pakke dem på nytt, bruk -u bytte om.
Anta at du har en zip-fil som heter "variousmusic.zip" med musikk fra ulike artister, en av dem er AC/DC. Du kan kopiere AC/DC-sangene ut av diversemusic.zip-filen til ACDC.zip-filen ved å bruke følgende kommando:
zip diversemusic.zip -U --out ACDC.zip "Back_In_Black.mp3"
Kommandoen ovenfor kopierer filen "Back_In_Black.mp3" fra diversemusic.zip til ACDC.zip. Hvis zip-filen du kopierer til ikke eksisterer, blir den opprettet.
Hvordan bruke mønstertilpasning og rørføring for å lage et arkiv
Den neste bryteren er veldig nyttig fordi den lar deg bruke utdataene fra andre kommandoer til å sette inn filer i zip-filen din. Anta at du vil lage en fil kalt lovesongs.zip, som inneholder hver sang som har ordet kjærlighet i tittelen.
For å finne filene med kjærlighet i tittelen kan du bruke følgende kommando:
finn /hjem/navnet ditt/Musikk -navn *kjærlighet*
Kommandoen ovenfor er ikke 100 prosent perfekt fordi den fanger opp ord som "kløver" også, men du skjønner ideen. For å legge til alle de returnerte resultatene fra kommandoen ovenfor til en zip-fil kalt lovesongs.zip, kjør denne kommandoen:
finn /hjem/navnet ditt/Musikknavn *kjærlighet* | zip lovesongs.zip -@
Hvordan lage et delt arkiv
Hvis du sikkerhetskopierer datamaskinen, men det eneste mediet du har tilgjengelig for sikkerhetskopiering til er et sett med tomme DVDer, så har du et valg. Du kan fortsette å zippe filer til zip-filen er på 4,8 gigabyte og brenne DVD-en, eller du kan lage noe som kalles en delt arkiv som fortsetter å opprette nye arkiver i et sett etter at den når grensen du angir.
For eksempel:
zip mymusic.zip -r /home/myfolder/Music -s 670m.
Hvordan tilpasse fremdriftsrapporten for zip-prosessen
Det er forskjellige måter å tilpasse utdataene som vises mens zipping pågår.
De tilgjengelige bryterne er som følger:
- -db = viser hvor mange byte som er zippet og hvor mange som gjenstår
- -dc = viser antall filer som er zippet og hvor mange som gjenstår
- -dd = viser prikker for hver 10 MB fil som er zippet
- -ds = angir hvor ofte prikker vises
- -du = viser den ukomprimerte størrelsen på hver fil
For eksempel:
zip mittzipfilnavn.zip -dc -r /home/music.
Hvordan fikse en zip-fil
Hvis du har et zip-arkiv som er ødelagt, kan du prøve å fikse det ved å bruke -F kommandoen og hvis det mislykkes, FF kommando.
Dette er nyttig hvis du har opprettet et delt arkiv ved hjelp av -s switch, og du mistet en av arkivfilene.
Prøv for eksempel denne først:
zip -F mitt filnavn.zip --ut mitt faste filnavn.zip.
og så.
zip -FF mittfilnavn.zip --ut mittfastfilnavn.zip.
Hvordan kryptere et arkiv
Hvis du har sensitiv informasjon som du vil lagre i en zip-fil, bruk -e kommando til kryptere den. Du blir bedt om å angi en passord og for å gjenta passordet.
For eksempel:
zip mittfilnavn.zip -r /home/wikileaks -e.
Hvordan vise hva som vil bli zippet
Hvis du vet at du skal lage et stort arkiv, sørg for at de riktige filene blir lagt til zip-filen. Du kan se de forventede resultatene av en zip-kommando ved å spesifisere -sf bytte om.
For eksempel:
zip mittfilnavn.zip -r /home/music/ -sf.
Hvordan teste et arkiv
Etter å ha sikkerhetskopiert filer til en zip-fil, er det fristende å spare diskplass ved å slette originalfilene. Før du gjør det, er det en god idé å teste at zip-filen fungerer som den skal.
Du kan bruke -T bytt for å teste at zip-filen er gyldig.
For eksempel:
zip mittfilnavn.zip -T.
Utdata fra denne kommandoen når et arkiv er ugyldig kan se omtrent slik ut:
- zip-advarsel: mangler sluttsignatur - sannsynligvis ikke en zip-fil
Husk at du kan prøve kommandoen -F for å fikse ødelagte zip-filer.
Det er verdt å merke seg at -T kan produsere falske positiver ved at den sier at en zip-fil er korrupt, selv om når du åpner den, kan du pakke ut alle filene.
Hvordan ekskludere filer
Noen ganger vil du ekskludere visse filer fra en zip-fil. Hvis du for eksempel kopierer filene fra telefonen eller digitalkameraet, har du en blanding av videoer og bilder. Det kan være lurt å zippe bildene til photos.zip og videoer til videos.zip.
Her er en måte å ekskludere videoene når du oppretter photos.zip.
zip photos.zip -r /home/photos/ -x *.mp4.
Hvordan spesifisere komprimeringsnivå
Når du komprimere filer inn i en zip-fil, bestemmer systemet om filen skal komprimeres eller bare lagres. MP3-filer, for eksempel, allerede er komprimert, så det er liten vits i å komprimere dem ytterligere; de er vanligvis lagret som de er i en zip-fil.
Du kan imidlertid spesifisere et komprimeringsnivå mellom 0 og 9 for å komprimere en fil ytterligere. Dette tar lengre tid å gjøre, men det kan gi betydelige plassbesparelser.
zip minefiler.zip -r /home -5.