Hur man komprimerar och extraherar filer med tar-kommandot på Linux

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. Tjärkommandot 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. Det komprimerar också alla andra kataloger i en katalog du anger - med andra ord fungerar den rekursivt.

tar -czvf namn-arkiv.tar.gz / sökväg / till / katalog-eller-fil

Här är vad dessa omkopplare faktiskt betyder:

  • -c: C skapa ett arkiv.
  • -z: Komprimera arkivet med g z ip.
  • -v: Visa framsteg i terminalen när du skapar arkivet, även känt som “ v erbose” -läge. V är alltid valfritt i dessa kommandon, men det är till hjälp.
  • -f: Låter dig ange f ilename av arkivet.

Låt oss säga att du har en katalog med namnet "grejer" 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 grejer

Eller låt oss säga att det finns en katalog på / usr / local / något i det nuvarande 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 / något

Komprimera flera kataloger eller filer samtidigt

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

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

tar -czvf archive.tar.gz / home / ubuntu / Nedladdningar / 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 --excludeomkopplare för varje katalog eller fil du vill utesluta.

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

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

Den --excludebrytaren är mycket kraftfullt. 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-kompression 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, ersätt bara -z för gzip i kommandona här med a -j för bzip2.

Gzip är snabbare, men det komprimeras vanligtvis 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 greppskatalogen, skulle du köra följande kommando:

tar -cjvf archive.tar.bz2 grejer

Extrahera ett arkiv

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

tar -xzvf archive.tar.gz

Det är detsamma som kommandot för skapande av arkiv som vi använde ovan, förutom att -xomkopplaren ersätter -cväxeln. Detta anger att du vill e x vägarna ett arkiv i stället för att skapa en.

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

tjära -xzvf archive.tar.gz -C / tmp

Om filen är en bzip2-komprimerad fil, byt ut “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's manual 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.