I dybden Kig på Linux's Arkiverings- og Komprimeringskommandoer
Behovet for at pakke og komprimere filer sammen i et enkelt arkiv har eksisteret siden computere først fik harddiske, og at behovet er forblevet indtil i dag. Alt fra dokumenter og fotos til software og enhedsdrivere uploades og downloades som arkiver hver dag. De fleste computerbrugere er bekendt med .zip-filer, men der er mere at arkivere end blot den ydmyge .zip. I denne vejledning vil vi vise dig de forskellige Linux arkiverings- og komprimeringskommandoer og den rigtige måde at gøre brug af dem.
Tjære og gzip
Historisk set er standardarkivværktøjet på Linux tar
kommandoen. Oprindeligt stod det for "Tape Archive", men det var tilbage, da bånd var de primære medier til at flytte data. tar
kommandoen er meget fleksibel, og den kan oprette, komprimere, opdatere, udtrække og teste arkivfiler. Standardforlængelsen for et ukomprimeret tjærearkiv (undertiden kaldet en tjærefil eller tarball) er .tar, mens komprimerede tjærearkiver oftest bruger .tgz-udvidelsen (hvilket betyder en tjærefil komprimeret med GNU zip). Tar tilbyder faktisk flere forskellige komprimeringsmetoder, herunder bzip2, zip, LZW og LZMA.
Hvis du vil oprette en ukomprimeret tarball af alle filerne i en mappe, skal du bruge følgende kommando:
tjære cvf somefiles.tar *
c
betyder create, v
står for verbose (betyder, at tar-kommandoen vil liste de filer, den arkiverer), og f
fortæller tjære, at den næste parameter er navnet på arkivfilen, i dette tilfælde "somefiles.tar". Wildcard * betyder alle filer i mappen, som det ville for de fleste Linux shell kommandoer.
Tarball "somefiles.tar" er oprettet i den lokale mappe. Dette kan nu komprimeres med et værktøj som gzip, zip, komprimere eller bzip2. For eksempel:
gzip somefiles.tar
gzip vil komprimere tarball og tilføje .gz udvidelsen. Nu i den lokale mappe er der en file somefiles.tar.gz
stedet for filen somefiles.tar
.
Denne to-trins proces, skaber tarballen og komprimerer den, kan reduceres til et trin ved hjælp af tjæreens indbyggede kompression:
tjære cvzf somefiles.tgz *
Dette vil skabe en gzip komprimeret tarball kaldet somefiles.tgz
. Den ekstra z
option forårsager tjære til at komprimere tarballen. I stedet for z
du bruge j
, J
eller Z
der fortæller tjær at bruge henholdsvis bzip2, xz og LZW kompression. xz implementerer LZMA2-komprimering, som er den samme algoritme som det populære Windows 7-Zip-program.
7-Zip
Det er muligt at oprette en 7-Zip-kompatibel fil ved hjælp af kommandoen 7zr
. For at oprette et .7z arkiv brug:
7zr en somefiles.7z *
De valgmuligheder betyder tilføj, dvs. tilføj alle de lokale filer til arkivet somefiles.7z. Denne fil kan derefter sendes til en Windows-bruger, og de vil være i stand til at udtrække indholdet uden problemer.
Brug 7zr til at udføre sikkerhedskopier på Linux anbefales ikke, da 7-zip ikke gemmer ejer / gruppeoplysninger om de filer, den arkiverer. Det er muligt at bruge 7zr til at komprimere en tarball (som gemmer ejeren information). Du kan gøre dette ved hjælp af et Unix-rør som følger:
tjære cvf - * | 7zr a -si somefiles.tar.7z
Stiften efter f
opsætningen fortæller tjære at sende sin output til Unix stdout
og ikke til en fil. Da vi bruger et rør, vil udgangen fra tjære blive fodret til 7zr, som venter på input fra stdin
grund af -si
indstillingen. 7zr vil derefter oprette et arkiv kaldet somefiles.tar.7z
som vil indeholde tarball som igen indeholder filerne. Hvis du ikke er bekendt med at bruge rør, kan du oprette en standard tarball og derefter komprimere den med 7zr ved hjælp af to trin:
tar -cvf somefiles.tar * 7zr en somefiles.tar.7z somefiles.tar
Udvinding
Uddrag af filerne fra disse forskellige arkiver er også meget enkel, her er et hurtigt snydeark til uddragning af de forskellige filer, der er oprettet ovenfor.
At udtrække en simpel tarball brug:
tjære xvf somefiles.tar
Hvor x
betyder ekstrakt.
At udvinde en komprimeret tarball brug:
tjære xvzf somefiles.tgz
z
opsætningen fortæller tjære, at gzip blev brugt til at komprimere det oprindelige arkiv. I stedet for z
du bruge j
, J
eller Z
afhængigt af den komprimeringsalgoritme, der blev brugt, da filen blev oprettet.
For at udpakke filerne fra en 7-Zip-fil brug:
7zr e somefiles.tar.7z
Konklusion
Linux tilbyder en bred vifte af arkiverings- og komprimeringskommandoer. Prøv at eksperimentere med zip- og xz-kommandoer, de fungerer på en meget lignende måde som de andre værktøjer, der er nævnt her. Hvis du sidder fast, bør du prøve at læse manens side, fx man xz
for ekstra hjælp.