Så här komprimerar och extraherar du filer med tar-kommandot på Linux

  • Chris Hoffman

    @chrisbhoffman

  • 10 april 2016 06:40 EDT

Tar-kommandot på Linux används ofta för att skapa .tar.gz- eller .tgz-arkivfiler, även kallade ”tarballs.” Det här kommandot har ett stort antal alternativ, men du behöver bara komma ihåg några bokstäver för att snabbt skapa arkiv med tjära. Tar-kommandot kan också extrahera de resulterande arkiven.

GNU tar-kommandot som ingår i Linux distributioner har integrerad komprimering. Det kan skapa ett .tar-arkiv och sedan komprimera det med gzip- eller bzip2-komprimering i ett enda kommando. Det är därför den resulterande filen är en .tar.gz-fil eller .tar.bz2-fil.

Komprimera en hel katalog eller en enda fil

Använd följande kommando för att komprimera en hel katalog eller en enda fil på Linux. Den komprimerar också alla andra kataloger i en katalog du anger – med andra ord , det fungerar rekursivt.

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

Här är vad dessa växlar egentligen betyder:

  • -c: Skapa ett arkiv.
  • -z: Komprimera arkivet med gzip.
  • -v: Visa framsteg i terminalen när du skapar arkivet, även känt som ”verbose” -läge. V är alltid valfritt i dessa kommandon, men det är användbart.
  • -f: Låter dig ange arkivets filnamn.
Annons

Låt oss säga att du har en katalog med namnet ”stuff” i den aktuella katalogen och att du vill spara den i en fil med namnet archive.tar.gz. Du kör följande kommando:

tar -czvf archive.tar.gz stuff

Eller låt oss säga att det finns en katalog på / usr / local / något på det aktuella systemet och du vill komprimera den till en fil med namnet archive.tar.gz. Du kör följande kommando :

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

Komprimera flera kataloger eller filer samtidigt

RELATERAD: Så här hanterar du filer från Linux-terminalen: 11 kommandon du behöver Vet

Även om tjära ofta används för att komprimera en enskild katalog kan du också använda den för att komprimera flera kataloger, flera enskilda filer eller båda. Ange bara en lista med filer eller kataloger istället för en enda. Låt oss till exempel säga att du vill komprimera / home / ubuntu / Do katalogen wnloads, katalogen / usr / local / stuff och /home/ubuntu/Documents/notes.txt-filen. Du kör bara följande kommando:

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

Lista bara så många kataloger eller filer som du vill säkerhetskopiera.

Uteslut Kataloger och filer

I vissa fall kanske du vill komprimera en hel katalog, men inte inkludera vissa filer och kataloger. Du kan göra det genom att lägga till en --exclude -omkopplare för varje katalog eller fil du vill utesluta.

Annons

Till exempel, låt oss säga du vill komprimera / home / ubuntu, men du vill inte komprimera katalogerna / home / ubuntu / Downloads och /home/ubuntu/.cache. Så här gör du det:

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

--exclude -omkopplaren är mycket kraftfull. Det tar inte namn på kataloger och filer – det accepterar faktiskt mönster. Det finns mycket mer du kan göra med det. Du kan till exempel arkivera en hel katalog och utesluta alla .mp4-filer med följande kommando:

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

Använd bzip2-komprimering istället

Medan gzip-komprimering oftast används för att skapa .tar.gz- eller .tgz-filer, stöder tar också bzip2-komprimering. Detta låter dig skapa bzip2-komprimerade filer, ofta benämnda .tar.bz2-, .tar.bz- eller .tbz-filer. För att göra det, byt bara ut -z för gzip i kommandona här med a -j för bzip2.

Annons

Gzip är snabbare, men det komprimeras i allmänhet lite mindre, så du får en något större fil. Bzip2 är långsammare, men det komprimeras lite mer, så du får en något mindre fil. Gzip är också vanligare, med vissa avskalade Linux-system inklusive gzip-stöd som standard, men inte bzip2-stöd. I allmänhet är dock gzip och bzip2 praktiskt taget samma sak och båda fungerar på samma sätt.

Till exempel, istället för det första exemplet som vi tillhandahöll för komprimering av greppkatalogen skulle du köra följande kommando:

tar -cjvf archive.tar.bz2 stuff

Extrahera ett arkiv

När du har ett arkiv kan du extrahera det med kommandot tar. Följande kommando extraherar innehållet i archive.tar.gz till den aktuella katalogen.

tar -xzvf archive.tar.gz

Det är samma som kommandot för skapande av arkiv som vi använde ovan, förutom omkopplaren -x ersätter omkopplaren -c. Detta anger att du vill extrahera ett arkiv istället för att skapa ett.

Annons

Du kanske vill extrahera innehållet i arkivet till en viss katalog. Du kan göra det genom att lägga till -C -växeln till slutet av kommandot. Till exempel kommer följande kommando att extrahera innehållet i filen archive.tar.gz till / tmp-katalogen.

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

Om filen är en bzip2-komprimerad fil, ersätt ”z” i kommandona ovan med ett ”j”.

Detta är den enklaste möjliga användningen av tar-kommandot. Kommandot innehåller ett stort antal ytterligare alternativ, så vi kan omöjligt lista dem alla här. För mer information. kör kommandot info-tjära vid skalet för att se tjärkommandos detaljerade informationssida. Tryck på q-knappen för att avsluta informationssidan när du är klar. Du kan också läsa tar-manualen online.

Om du använder ett grafiskt Linux-skrivbord kan du också använda filkomprimeringsverktyget eller filhanteraren som medföljer skrivbordet för att skapa eller extrahera .tar-filer. I Windows kan du extrahera och skapa .tar-arkiv med det kostnadsfria 7-Zip-verktyget.

Chris Hoffman
Chris Hoffman är chefredaktör för How-To Geek. Han har skrivit om teknik i nästan ett decennium och varit en PCWorld-spaltist i två år. Chris har skrivit för The New York Times, har intervjuats som en teknikexpert på TV-stationer som Miamis NBC 6 och fått sitt arbete täckt av nyheter som BBC. Sedan 2011 har Chris skrivit över 2000 artiklar som har lästs mer än 500 miljoner gånger — och det är här på How-To Geek.Read Full Bio ”

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *