Behovet av att paketera och komprimera filer tillsammans i ett enda arkiv har funnits sedan datorerna först hade hårddiskar, och det behövde stannat fram till idag. Allt från dokument och foton till programvara och drivrutiner laddas upp och laddas ner som arkiv varje dag. De flesta datoranvändare är bekanta med .zip-filer, men det finns mer att arkivera än bara den ödmjuka .zip. I den här handledningen visar vi de olika Linux-arkiv- och komprimeringskommandon och rätt sätt att använda dem.

Tjära och gzip

Historiskt är standardarkivverktyget på Linux tar kommandot. Ursprungligen stod det för "Tape Archive", men det var tillbaka när band var de primära medierna för att flytta data. tar är mycket flexibelt och det kan skapa, komprimera, uppdatera, extrahera och testa arkivfiler. Standardförlängningen för ett okomprimerat tjärarkiv (ibland kallat en tjärfil eller tarball) är .tar medan komprimerade tjärarkiv oftast använder .tgz-förlängningen (vilket betyder en tjärfil komprimerad med GNU-zip). Tjära erbjuder faktiskt flera olika komprimeringsmetoder, inklusive bzip2, zip, LZW och LZMA.

För att skapa en okomprimerad tarball av alla filer i en katalog använd följande kommando:

 tjära cvf somefiles.tar * 

c betyder skapa, v står för verbose (vilket betyder att tar-kommandot kommer att lista de filer som arkiveras) och f säger tar att nästa parameter är namnet på arkivfilen, i det här fallet "somefiles.tar". Vildkoden * betyder alla filer i katalogen, som det skulle för de flesta Linux-kommandon.

Tarballen "somefiles.tar" skapas i den lokala katalogen. Detta kan nu komprimeras med ett verktyg som gzip, zip, compress eller bzip2. Till exempel:

 gzip somefiles.tar 

gzip kommer komprimera tarballen och lägga till .gz-tillägget. Nu i den lokala katalogen finns en file somefiles.tar.gz stället för filen somefiles.tar .

Denna tvåstegs process, skapa tarballen och komprimera den kan reduceras till ett steg med tjärens inbyggda kompression:

 tjära cvzf somefiles.tgz * 

Detta kommer att skapa en gzip komprimerad tarball kallad somefiles.tgz . Extra z alternativet orsakar tjära för att komprimera tarballen. I stället för z du använda j, J eller Z som berättar tjära att använda bzip2, xz och LZW-kompression respektive. xz implementerar LZMA2-komprimering som är samma algoritm som det populära Windows 7-Zip-programmet.

7-Zip

Det är möjligt att skapa en 7-Zip-kompatibel fil med kommandot 7zr . För att skapa ett .7z arkiv använd:

 7zr en somefiles.7z * 

De alternativen betyder att lägga till, dvs lägga till alla lokala filer i arkivet somefiles.7z. Den här filen kan sedan skickas till en Windows-användare och de kommer att kunna extrahera innehållet utan några problem.

Att använda 7zr för att utföra säkerhetskopior på Linux rekommenderas inte eftersom 7-zip inte lagrar ägaren / gruppinformationen om filerna som den arkiverar. Det är möjligt att använda 7zr för att komprimera en tarball (som lagrar ägarnas information). Du kan göra detta med ett Unix-rör enligt följande:

 tjära cvf - * | 7zr a -si somefiles.tar.7z 

Stycken efter f alternativet berättar tjära att skicka utdata till Unix stdout och inte till en fil. Eftersom vi använder ett rör, matas utmatningen från tjära till 7zr som väntar på inmatning från stdin på grund av -si alternativet. 7zr skapar sedan ett arkiv som heter somefiles.tar.7z som innehåller tarball som i sin tur innehåller filerna. Om du inte känner till att du använder rör kan du skapa en standard tarball och komprimera den med 7zr med två steg:

 tar -cvf somefiles.tar * 7zr a somefiles.tar.7z somefiles.tar 

Extraktion

Att extrahera filerna från dessa olika arkiv är också mycket enkelt, här är ett snabbt fuskblad för att extrahera de olika filerna som skapats ovan.

För att extrahera en enkel tarballanvändning:

 tjära xvf somefiles.tar 

Där x betyder extrakt.

För att extrahera en komprimerad tarballanvändning:

 tjära xvzf somefiles.tgz 

z alternativet berättar tjära att gzip användes för att komprimera originalarkivet. I stället för z du använda j, J eller Z beroende på den komprimeringsalgoritm som användes när filen skapades.

Att extrahera filerna från en 7-Zip-filanvändning:

 7zr e somefiles.tar.7z 

Slutsats

Linux erbjuder ett brett utbud av arkiverings- och komprimeringskommandon. Försök experimentera med zip och xz-kommandon, de fungerar på ett mycket liknande sätt som de andra verktygen som nämns här. Om du fastnar ska du försöka läsa manens sida, t.ex. man xz för extra hjälp.