Arkiv-filer
Slackware.SE Wiki
[redigera] 15 Arkiv-filer
15.1 gzip
gzip(1) är GNU komprimeringsprogram. Det tar en singel fil och komprimerar den. Så här använder man det:
% gzip filename
Det restulterar i en fil som heter filname.gz och kommer vanligtvis att vara mindre än originalfilen. Notera att filname.gz kommer att ersätta filen filename. Med det menas att den filen inte lägre kommer att finnas istället finns den gzippade kopian. Vanliga textfiler komprimeras rätt så bra medans jpeg-bilder, mp3 och andra såna filer knappt komprimeras alls eftersom de redan är så hårt komprimerade. Grunden till användandet är en balans mellan slutlig filstorlek och komprissionstid. Max komprimering kan anropas så här:
% gzip -9 filename
Det här kommer att ta lite längre tid att komprimera filen, men resulterar i en så liten fil som gzip kan göra den. Att använda lägre värden gör att komprimeringen görs fortare men filen kommer inte bli så komprimerad.
Packa upp gzippade giler kan göras genom att använda två kommandon, vilka är just samma program. gzip kommer att packa upp alla filer med den igenkända filändelsen. Igenkända filändelser är följande: .gz, -gz, .z, -z, .Z eller -Z. den första metoden är att anropa gunzip(1) för en fil, så här:
% gunzip filename.gz
Det här kommer att lämna en uppackad version av filen i nuvarande katalog, och filändelsen .gz kommer att strippas bort från filnamnet. gunzip är egentligen en del av gzip och är identiskt med gzip -d. så som, gzip är ofta uttalad gunzip, eftesom namnet låter coolare :^)
15.2 bzip2
bzip2(1) är ett alternativt komprimeringsprogram som är installerat på Slackware Linux. Det använder en annan komprimerings algoritm till skillnad mot gzip, vilket resulterar i viss del fördel och annan nackdel. Huvudfördelen för bzip2 är storleken på den komprimerade filen. bzip2 kommer alltid att komprimera bättre än gzip. I vissa fall kan detta resultera i dramatiskt mycket mindre filer. Det kan vara en stor fördel för folk med slöa modemuppkopplingar. Men kom också ihåg, när du laddar ner mjukvara från en publik fpt server är det generellt sett netikett att ladda ner filen .bz2 istället för .gz filers, som resulterar i mindre belastning för de generösa människorna som ansvarar för servern.
Nackdelen för bzip2 är att det är mer CPU-krävande än gzip. Detta menar att b-zippa en fil generellt tar längre tid och kommer att använde mera av din CPU än g-zippning skulle ha tagit. När du funderar på vilket du ska använda får du väga in hastigheten mot komprimeringens storlek och bestämma vilket som är mest viktigt för dig.
Användandet av bzip2 är närmast indentiskt till gzip, så inte mycket tid kommer att gå åt för att diskutera det. Som gunzip, bunzip2 är identiska till bzip2 -d. Den primära skillnaden är i praktiskt användande bzip2 använder ändelsen .bz2.
% bzip2 filename % bunzip2 filename.bz2 % bzip2 -9 filename
15.3 tar
tar(1) är GNU tape archiver. Det tar flertalet filer eller kataloger och skapar en enda stor fil. Det tillåter dig att komprimera ett helt katalogträd, vilket är omöjligt med gzip eller bzip2. tar har många kommandorads växlar, vilka är förklarade i dess mansida. Den här sektionen tar bara upp det mest vanliga användandet.
Det mest vanligaste sättet för att använda tar är att packa ett paket som du har laddat hem från en websida eller ftp sida. De flesta filerna har ändelsen .tar.gz. Detta är mer känt som "tarball". Det menas att flera filer är arkiverade genom tar och sen komprimerade med gzip. Du kan också se det listat som en .tar.Z fil. Det menar samma sak, men det händer vanligtvis bara på äldre Unix system.
Alternativt så kanske du hittar en tar.bz2 fil någonstans. Källkoden för kärnan är distribuerad så eftersom det är en mindre nedladdning. Som du kanske redan gissat, så är detta flera arkiverade filer med tar och sedan b-zippad.
Du kan komma åt alla filerna i detta arkiv genom att använda tar och några kommandorads argument. För att arkivera upp en tarball behövs -z flaggan, vilket menas att kör först filen genom gunziå och packa upp den. Den mest vanligaste vägen för att packa upp en tarball är så här:
% tar -xvzf filename.tar.gz
Det är några få växlar. Men vad menar alla dessa? -x betyder att extrahera. Det här är viktigt, när det talar om för tar exakt vad som ska göras med orginalfilen. I det här fallet, kommer vi att dela upp filen tillbaka i samma form som den kom i. växeln -v menar att vara utförlig. Det här kommer att lista alla filer som kommer att packas upp. Det är full acceptabelt att utesluta den här växeln, det är liksom lite tråkigt. Alternativt skulle du kunna använda -vv för att vara väldigt utförlig och lista ännu mera information om varje fil som packas upp. Växeln -z talar om för tar att köra flinam.tar.gz genom gunzip först. Och till slut växeln -f talar om för tar att nästa sträng i kommandoraden är filen som ska opereras.
Det finns några gå andra vägar att gå för att skriva samma kommando. På äldre system saknas en ordentlig kopia av GNU tar, du kanske får se något sånt här då:
% gunzip filename.tar.gz | tar -xvf -
Denna kommadorad kommer att packa upp filen och skicka utskriften till tar. eftersom gzip kommer att skriva sin utskrift som standard om man talar om för den att göra så, detta kommando skriver som standard uppackade filer ut. omstyrningen skickar det sen till tar för packa upp arkiveringen. "-" menas att arbeta på standar inskrivning. Den kommer att upparkivera streamen av data som den får från gzip och skriva det till disken.
Ett annat sätt att skriva det första kommandoraden på är att utelämna bindestrecket innan växlarna, så här:
% tar xvzf filename.tar.gz
Du kanske också träffar på ett b-zippat arkiv. Versionen av tar som följer med Slackware Linux kan hantera dessa på samma sätt som g-zippade arkiv. Istället för växeln -z använder du -j:
% tar -xvjf filename.tar.bz2
Det är viktigt att notere att tar kommer att placerade uppackade arkiv filer i nuvarande arbetskatalog. Så om du hade ett arkiv i /tmp som du ville packa upp till din hemkatalog finns det några få val. Först skulle arkivet kunna flyttas till din hemkatalog och sen köra det genom tar. Andra, skulle du kunna specifiera sökvägen för arkivfilen på kommandoraden. Tredje, så kan du använda växeln -C för att explodera tarballen i en specifik katalog.
% cd $HOME % cp /tmp/filename.tar.gz . % tar -xvzf filename.tar.gz % cd $HOME % tar -xvzf /tmp/filename.tar.gz % cd / % tar -xvzf /tmp/filename.tar.gz -C $HOME
Alla ovanstående är likvärdiga. I varjefall, är arkivet uppackat inne i din hemkatalog och orginalet kvar där det låg.
Så vad är det för bra med att kunna packa upp dessa arkiv, om du inte kan skapa dem? Ja, tar behandlar det också. I de flesta fall är det lika lätt som att radera "-x" växlen och ersätta det med växeln "-c".
% tar -cvzf filename.tar.gz .
I denna kommandorad, talar växeln -c om för tar att skapa ett arkiv, medans växeln -z kör den restulterade akrivfilen genom gzip för att komprimera den. filename.tar.gz är filen du vill skapa.
Att specifiera växeln "-f" är inte alltid nödvändigt, men det är bra praktig i alla fall. Utan det skriver tar till standard utskrift, som vanligtvis är menat för att styra om tar´s utskrift till ett annat program, så här:
% tar -cv filename.tar . | gpg --encrypt
Det här kommandot skapar en icke-komprimerat tar arkiv av nuvarande katalog, styr om tarballen genom gpg vilket kryptera och komprimerar tarballen, vilket gör det realistiskt omöjligt för någon annan att läsa än den person som vet om den hemliga nyckeln.
15.4 zip
Till sist finns det två verktyg som kan användas på zip-filer. Dessa är väldigt vanliga i Windowsvärlden. så Linux har program för att behandla även dessa. Komprimeringsprogrammet kallas zip(1), och programmet som packar upp kallas unzip(1).
% zip foo *
Det här skapar filen foo.zip, vilket innehåller alla filer i nuvarande katalog. zip lägger till filändelsen .zip automatiskt, så du behöver inte inkludera det i filnamnet själv. Du kan också tillgripa nuvarande katalogen, zippa alla kringliggande kataloger också:
% zip -r foo *
Att packa upp filer är också lika enkelt.
% unzip foo.zip
Detta packar upp alla filerna i foo.zip, inklusive alla kataloger i arkivet.
Verktyget zip har flera avancerad växlar för att skapa självuppackande arkiv, utelämna filer, kontrollera filstorleken, skriva ut vad som kommer att händ och mycket mera. Ta en titt på mansidan för zip och unzip för hur du använder dessa växlar.
Klart om någon rättar.
--Dartanjang 18 juli 2006 kl.15.27 (CEST)
