Sådan udpakkes en tar.gz-fil
Hvis du bruger open source-software, er chancerne for, at du på et eller andet tidspunkt vil støde på en .tar-fil. Open source-tar arkivværktøjet har eksisteret siden 1979 , så det er virkelig allestedsnærværende i POSIX-verdenen. Formålet er simpelt: Det tager en eller flere filer og “indpakker” dem til en selvstændig fil, kaldet et båndarkiv, fordi når tjære blev opfundet, blev den brugt til at placere data på opbevaringstape.
Folk, der er nye i tar-formatet, sidestiller det normalt med en .zip-fil, men et tar-arkiv er især ikke komprimeret. Tar-formatet opretter kun en container til filer, men filerne kan komprimeres med separate hjælpeprogrammer. Almindelige komprimeringer, der anvendes til en .tar-fil, er Gzip, bzip2 og xz. Derfor ser du sjældent bare en .tar-fil og støder oftere på .tar.gz- eller .tgz-filer.
Installation af tjære
På Linux, BSD, Illumos og endda Mac OS er tjærkommandoen allerede installeret til dig.
På Windows er den nemmeste måde at håndtere .tar-filer på er at insta ll LGPL open source 7-Zip-værktøjet. Navnet antyder, at det er et zip-værktøj, men det fungerer også med tjærearkiver og giver endda kommandoer til cmd-kommandolinjegrænsefladen.
Hvis du virkelig ønsker et faktisk tjæreværktøj på Windows, er GNU-tjære kan installeres via WSL på Windows 10 eller gennem Cygwin.
Oprettelse af en tarball
Et tjærearkiv kaldes ofte en tarball, sandsynligvis fordi vi hackere elsker at forkorte ord til så få stavelser som muligt, og “tarball” er kortere og lettere end “tar-arkiv.”
I en GUI er oprettelse af en tarball højst en tretrins proces. Jeg bruger KDE, men processen er stort set den samme på Gnome eller XFCE:
- Opret en mappe
- Placer dine filer i biblioteket
- Højreklik på biblioteket og vælg “Komprimer”
compress.jpg
Oprettelse af en tarball
I en shell er det stort set den samme proces.
At samle en gr oup af filer i et arkiv, placer dine filer i en mappe, og påkald derefter tar, med et navn til det arkiv, du vil oprette, og den mappe, du vil arkivere:
Tar-hjælpeprogrammet er unikt blandt kommandoer, fordi det ikke kræver bindestreger foran sine korte indstillinger, så power-brugere kan forkorte komplekse kommandoer som denne:
Du behøver ikke at placere filer i en mappe, før du arkiverer dem, men det betragtes som dårlig etikette ikke, fordi ingen vil have 50 filer spredt ud på deres skrivebord, når de fjerner arkivering af en mappe. Disse slags arkiver kaldes undertiden en tarbomb, men ikke altid med en negativ konnotation. Tarbombs er nyttige til programrettelser og softwareinstallatører; det er bare et spørgsmål om at vide, hvornår de skal bruges, og hvornår man skal undgå dem.
Komprimering af arkiver
Oprettelse af et tjærearkiv komprimerer ikke dine filer, det gør dem bare nemmere at bevæge dig rundt som en klat. For komprimering kan du få tjæreopkald Gzip eller bzip:
$ tar --create --bzip2 --file foo.tar.bz2 myfiles
$ tar --create --gzip --file foo.tar.gz myfiles
Almindelige udvidelser er tar.gz og .tgz for en Gzipped tjære fil og .tbz og .tar.bz2 for en bzipped tar-fil.
Uddrag af arkiver
Hvis du har modtaget en tarball fra en ven eller et softwareprojekt, kan du udtrække det enten på dit GUI-skrivebord eller i en shell. I en GUI skal du højreklikke på det arkiv, du vil udtrække, og vælge “Uddrag.”
extract_0.jpg
Udpakning af et arkiv
Dolphin-filhåndteringen tilbyder en funktion til automatisk registrering af, om de filer, der udvindes fra et arkiv, er indeholdt i en mappe, eller hvis der skal oprettes en ny mappe til dem. Jeg bruger denne mulighed, så når jeg udpakker filer fra en tarbomb, forbliver de ryddelige og indeholdt.
I en shell er kommandoen til at udtrække et arkiv ret intuitiv:
Power-brugere forkorter dette til:
Du kan endda bruge tar-værktøjet til at pakke ud .zip-filer:
Avanceret tjære
Tjæreværktøjerne er meget robuste og fleksible. Når du er fortrolig med det grundlæggende, er det nyttigt at udforske andre funktioner.
Føj en fil eller et bibliotek til en eksisterende tarball
Hvis du har en eksisterende tarball og vil tilføj en ny fil til den, du behøver ikke at arkivere alt bare for at tilføje en ny fil.
De fleste Linux- og BSD-desktops leveres med et grafisk arkivværktøj. Ved hjælp af det kan du åbne et tjærearkiv som om det var en anden mappe, kig indad, udpak individuelle filer, tilføj filer til den og endda se tekstfiler og billeder, den indeholder.
ark.jpg
Ark arkivværktøjet
I skallen kan du tilføje en fil eller et bibliotek til et tjærearkiv, så længe det ikke er komprimeret. Hvis dit arkiv er komprimeret, skal du fjerne det, men du behøver ikke at arkivere det.
For eksempel hvis et arkiv er komprimeret med Gzip:
$ gunzip archive.tar.gz
$ ls
archive.tar
Nu hvor du har et ukomprimeret tjærearkiv, skal du tilføje en fil og en mappe til den:
$ tar --append --file archive.tar foo.txt
$ tar --append --file archive.tar bar/
Den kortere version:
$ tar rf archive.tar foo.txt
$ tar rf archive.tar bar/
Se en liste over filer i en tarball
Hvis du vil se filerne i et arkiv, komprimeret eller ukomprimeret, skal du bruge – listemulighed:
$ tar --list --file archive.tar.gz
myfiles/
myfiles/one
myfiles/two
myfiles/three
bar/
bar/four
foo.txt
Power-brugere forkorter dette til:
Uddrag kun en fil eller bibliotek
Nogle gange behøver du ikke alle filerne i et arkiv, du vil bare udpakke en eller to. Når du har vist indholdet af et tjærearkiv, skal du bruge den sædvanlige tjærextraktkommando sammen med sti til den fil, du vil udpakke:
$ tar xvf archive.tar.gz bar/four
bar/four
Udpakning af flere filer eller mapper er grundlæggende den samme:
$ tar xvf archive.tar.gz myfiles/one bar/four
myfiles/one
bar/four
Du kan endda bruge jokertegn:
$ tar xvf archive.tar.gz --wildcards "*.txt"
foo.txt
Uddrag en tarball til en anden mappe
Tidligere nævnte jeg, at nogle tarballs var tarbomber, der forlod filer spredt rundt på din computer. Hvis du viser et tjærearkiv og ser, at filerne ikke er indeholdt i en mappe, kan du oprette en destinationsmappe til dem:
$ tar --list --file archive.tar.gz
foo
bar
baz
$ mkdir newfiles
$ tar xvf archive.tar.gz -C newfiles
Dette placerer alle filerne i arkivet pænt ind i “newfiles” -mappen.
Destinationsmappefunktionen er nyttig til meget mere end bare at holde udpakkede filer ryddelige, for eksempel ved at distribuere filer, der er beregnet til at blive kopieret til en eksisterende bibliotekstruktur. Hvis du arbejder på et websted og vil sende administratoren nogle nye filer, kan du gøre det på forskellige måder. Den åbenlyse måde er at sende filerne til webstedsadministratoren sammen med en tekst, der forklarer, hvor hver fil skal være placeret: “Den vedhæftede index.php-fil går til /var/www/example.com/store, og vouchers.php-filen går til /var/www/example.com/deals …”
Den mere effektive måde ville være at oprette et tjærearkiv:
I betragtning af denne struktur kunne webstedsadministratoren udtrække dit indgående arkiv direkte til serverens rodmappe. Tar-hjælpeprogrammet registrerer automatisk eksistensen af /var/www/example.com samt underkatalogerne gemmer, handler og billeder og distribuerer filerne i de korrekte kataloger. Det er massekopiering og indsættelse, hurtigt og nemt.
GNU-tjære og BSD-tjære
Tæreformatet er bare et format, og det er et åbent format, så det kan oprettes af mere end blot et værktøj.
Der er to almindelige tjæreværktøjer: GNU-tjæreværktøjet, der er installeret som standard på Linux-systemer og BSD-tjæreværktøjet, der er installeret som standard på BSD, Mac OS og nogle Linux-systemer. Til generel brug vil begge tjære gøre. Alle eksempler i denne artikel fungerer for eksempel på enten GNU eller BSD tjære. De to hjælpeprogrammer har dog nogle mindre forskelle, så når du bliver fortrolig med den ene, skal du prøve den anden.
Du bliver sandsynligvis nødt til at installere den “anden” tjære (uanset hvad der måtte være på dit system) manuelt. For at undgå forveksling mellem hjælpeprogrammer kaldes GNU tar ofte gtar og BSD tar kaldes bsdtar, hvor kommandoen tar er et symlink eller et alias til det, der blev forudinstalleret på din computer.