Sådan komprimeres og udpakkes filer ved hjælp af tar-kommandoen på Linux

  • Chris Hoffman

    @chrisbhoffman

  • 10. april 2016 6:40 EDT

Tar-kommandoen på Linux bruges ofte til at oprette .tar.gz- eller .tgz-arkivfiler, også kaldet “tarballs.” Denne kommando har et stort antal muligheder, men du skal bare huske et par bogstaver for hurtigt at oprette arkiver med tjære. Tjærekommandoen kan også udtrække de resulterende arkiver.

GNU-tjærkommandoen inkluderet i Linux distributioner har integreret kompression. Det kan oprette et .tar-arkiv og derefter komprimere det med gzip- eller bzip2-kompression i en enkelt kommando. Derfor er den resulterende fil en .tar.gz-fil eller .tar.bz2-fil.

Komprimer en hel mappe eller en enkelt fil

Brug følgende kommando til at komprimere en hel mappe eller en enkelt fil på Linux. Den komprimerer også alle andre mapper i en mappe, du angiver – med andre ord , det fungerer rekursivt.

tar -czvf name-of-archive.tar.gz /path/to/directory-or-file

Her er hvad disse kontakter faktisk betyder:

  • -c: Opret et arkiv.
  • -z: Komprimér arkivet med gzip.
  • -v: Vis status i terminalen, mens du opretter arkivet, også kendt som “verbose” -tilstand. V er altid valgfrit i disse kommandoer, men det er nyttigt.
  • -f: Giver dig mulighed for at angive arkivets filnavn.
Annonce

Lad os sige, at du har en mappe med navnet “stuff” i den aktuelle mappe, og at du vil gemme den i en fil med navnet archive.tar.gz. Du kører følgende kommando:

tar -czvf archive.tar.gz stuff

Eller lad os sige, at der er en mappe på / usr / local / noget på det aktuelle system, og du vil komprimere den til en fil med navnet archive.tar.gz. Du kører følgende kommando :

tar -czvf archive.tar.gz /usr/local/something

Komprimer flere mapper eller filer på én gang

RELATERET: Sådan administreres filer fra Linux-terminalen: 11 kommandoer, du skal bruge Know

Selvom tjære ofte bruges til at komprimere en enkelt mappe, kan du også bruge den til at komprimere flere mapper, flere individuelle filer eller begge dele. Giv bare en liste over filer eller mapper i stedet for en enkelt. Lad os for eksempel sige, at du vil komprimere / home / ubuntu / Do wnloads-biblioteket, / usr / local / stuff-biblioteket og /home/ubuntu/Documents/notes.txt-filen. Du vil bare køre følgende kommando:

tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt

Skriv bare så mange mapper eller filer, som du vil sikkerhedskopiere.

Ekskluder Kataloger og filer

I nogle tilfælde vil du muligvis komprimere en hel mappe, men ikke medtage bestemte filer og kataloger. Du kan gøre det ved at tilføje en --exclude switch for hver mappe eller fil, du vil ekskludere.

Annonce

Lad os for eksempel sige du vil komprimere / home / ubuntu, men du vil ikke komprimere mapperne / home / ubuntu / Downloads og /home/ubuntu/.cache. Sådan gør du det:

tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache

--exclude -kontakten er meget kraftfuld. Det tager ikke navne på mapper og filer – det accepterer faktisk mønstre. Der er meget mere, du kan gøre med det. For eksempel kan du arkivere en hel mappe og ekskludere alle .mp4-filer med følgende kommando:

tar -czvf archive.tar.gz /home/ubuntu --exclude=*.mp4

Brug bzip2-kompression i stedet

Mens gzip-komprimering oftest bruges til at oprette .tar.gz- eller .tgz-filer, understøtter tar også bzip2-komprimering. Dette giver dig mulighed for at oprette bzip2-komprimerede filer, ofte navngivet .tar.bz2-, .tar.bz- eller .tbz-filer. For at gøre det skal du bare erstatte -z for gzip i kommandoerne her med en -j for bzip2.

Annonce

Gzip er hurtigere, men det komprimeres generelt lidt mindre, så du får en noget større fil. Bzip2 er langsommere, men den komprimerer lidt mere, så du får en noget mindre fil. Gzip er også mere almindeligt, med nogle strippede Linux-systemer inklusive gzip-support som standard, men ikke bzip2-understøttelse. Generelt er dog gzip og bzip2 praktisk talt den samme ting, og begge fungerer på samme måde.

For eksempel, i stedet for det første eksempel, vi leverede til komprimering af tingmappen, ville du køre følgende kommando:

tar -cjvf archive.tar.bz2 stuff

Uddrag et arkiv

Når du har et arkiv, kan du udpakke det med tar-kommandoen. Den følgende kommando udtrækker indholdet af archive.tar.gz til den aktuelle mappe.

tar -xzvf archive.tar.gz

Det er det samme som arkivoprettelseskommandoen, som vi brugte ovenfor, undtagen -x -afbryderen erstatter -c -omskifteren. Dette specificerer, at du vil udtrække et arkiv i stedet for at oprette et.

Annonce

Det kan være en god idé at udtrække arkivets indhold til en bestemt mappe. Du kan gøre det ved at tilføje -C -kontakten til slutningen af kommandoen. For eksempel vil følgende kommando udtrække indholdet af filen archive.tar.gz til / tmp-biblioteket.

tar -xzvf archive.tar.gz -C /tmp

Hvis filen er en bzip2-komprimeret fil, skal du udskifte “z” i ovenstående kommandoer med et “j”.

Dette er den enklest mulige anvendelse af tjærkommandoen. Kommandoen indeholder et stort antal yderligere muligheder, så vi kan umuligt liste dem alle her. For mere information. kør info tar-kommandoen ved skallen for at se tjærkommandos detaljerede informationsside. Tryk på q-tasten for at afslutte informationssiden, når du er færdig. Du kan også læse tars manual online.

Hvis du bruger et grafisk Linux-skrivebord, kan du også bruge filkomprimeringsværktøjet eller filhåndteringen, der følger med dit skrivebord, til at oprette eller udtrække .tar-filer. På Windows kan du udtrække og oprette .tar-arkiver med det gratis 7-Zip-værktøj.

Chris Hoffman
Chris Hoffman er chefredaktør for How-To Geek. Han har skrevet om teknologi i næsten et årti og var en PCWorld-spaltist i to år. Chris har skrevet for The New York Times, er blevet interviewet som en teknologiekspert på tv-stationer som Miamis NBC 6 og fik hans arbejde dækket af nyhedsforretninger som BBC. Siden 2011 har Chris skrevet over 2.000 artikler, der er blevet læst mere end 500 millioner gange — og det er lige her på How-To Geek.Læs fuld biografi

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *