Skip to content

bunzip2 Linux Command: Hur man använder det

7 de augusti de 2021
bunzip2 ubuntu terminal 5c507e63c9e77c00014afd12

Vad man ska veta

  • Använd kommandot -c –stdout för att komprimera/dekomprimera till standardutmatning och -d -komprimera att tvinga fram dekomprimering.
  • Använda sig av -t -test för att kontrollera specificerade filers integritet. Använda sig av -f -kraft för att tvinga överskrivning av utdatafiler. Använda sig av -k -håll för att behålla inmatningsfiler.
  • Använda sig av -s -litet för att sänka minnesanvändningen och -q -tyst för att undertrycka varningsmeddelanden. Använda sig av -v –verbose till visa filkomprimeringsförhållanden.

Den här artikeln förklarar hur du använder kommandot Linux bunzip2, som är en blocksorterande filkompressor som kan användas för att både komprimera och dekomprimera data. När du kör bzip2 kommando utan några alternativ komprimerar systemet data som standard. bunzip2 dekomprimeras som standard och bzcat dekomprimeras till stdout.

Bunzip2 Linux Command Options

Lista över bunzip2 -kommandon
Alternativ Förklaring
-c –stdout Komprimera eller dekomprimera till standardutmatning.
-d -komprimera Tvinga dekomprimering. bzip2, bunzip2 och bzcat är egentligen samma program, och beslutet om vilka åtgärder som ska vidtas görs utifrån vilket namn som används. Denna flagga åsidosätter den mekanismen och tvingar bzip2 att dekomprimera.
-z -komprimera Komplementet till -d: tvingar komprimering, oavsett anropsnamnet.
-t -test Kontrollera integriteten för de angivna filerna, men dekomprimera dem inte. Detta utför verkligen en provdekomprimering och kastar bort resultatet.
-f -kraft Tvinga överskrivning av utdatafiler. Normalt kommer bzip2 inte att skriva över befintliga utdatafiler. Tvingar också bzip2 att bryta hårda länkar till filer, vilket det annars inte skulle göra. bzip2 avböjer normalt att dekomprimera filer som inte har rätt magisk rubrikbyte. Om den tvingas (-f), kommer den emellertid att passera sådana filer genom oförändrade. Så här beter sig GNU gzip.
-k -håll Behåll (ta inte bort) inmatningsfiler under komprimering eller dekomprimering.
-s -litet Minska minnesanvändningen för komprimering, dekomprimering och testning. Filer dekomprimeras och testas med en modifierad algoritm som bara kräver 2,5 byte per blockbyte. Det betyder att alla filer kan dekomprimeras i 2300k minne, om än med ungefär hälften av normal hastighet. Under komprimering väljer -s en blockstorlek på 200k, vilket begränsar minnesanvändningen till ungefär samma siffra, på bekostnad av ditt komprimeringsförhållande. Kort sagt, om din maskin har lite minne (8 megabyte eller mindre), använd -s för allt. Se MEMORY MANAGEMENT nedan.
-q -tyst Undertryck icke-viktiga varningsmeddelanden. Meddelanden om I/O -fel och andra kritiska händelser kommer inte att undertryckas.
-v –verbose Ordförande läge – visa komprimeringsförhållandet för varje fil som bearbetas. Ytterligare -v: s ökar verbositetsnivån och sprider ut mycket information som främst är av intresse för diagnostiska ändamål.
-L -licens Visa programvaruversionen, licensvillkoren.
-V -version Visa programvaruversionen, licensvillkoren.
-1 eller -9 Ställ in blockstorleken på 100 k, 200 k .. 900 k vid komprimering. Har ingen effekt vid dekomprimering.

–snabb (alias för -1) och –bäst (alias för -9) är främst för GNU gzip -kompatibilitet. Särskilt, –snabb gör inte saker betydligt snabbare. Och –bäst väljer bara standardbeteendet. Behandlar alla efterföljande argument som filnamn, även om de börjar med ett bindestreck. Detta är så att du kan hantera filer med namn som börjar med ett bindestreck, till exempel: bzip2 –filnamn.

–repetitiv-snabb och –repetitiv-bäst är överflödiga i versioner 0.9.5 och senare. De gav viss grov kontroll över sorteringsalgoritmens beteende i tidigare versioner, vilket ibland var användbart. 0.9.5 och senare har en förbättrad algoritm som gör dessa flaggor irrelevanta. Använd kommandot man (% man) för att se hur ett kommando används på just din dator.

Utforskar komprimeringen av bunzip2

bzip2 komprimerar filer med hjälp av Burrows-Wheeler-blocksorteringstextkomprimeringsalgoritmen och Huffman-kodning. Komprimering är generellt betydligt bättre än den som uppnås med mer konventionella LZ77/LZ78-baserade kompressorer och närmar sig prestandan hos PPM-familjen av statistiska kompressorer. Kommandoradsalternativen är medvetet mycket lika dem i GNU gzip, men de är inte identiska.

bzip2 förväntar sig att en lista med filnamn ska följa kommandoradsflaggorna. Varje fil ersätts av en komprimerad version av sig själv, med namnet ”original_name.bz2”. Varje komprimerad fil har samma ändringsdatum, behörigheter och, när det är möjligt, ägande som motsvarande original så att dessa egenskaper kan återställas korrekt vid dekomprimeringstid.

När ska du använda -f -flaggan

Filnamnshantering är naiv i den meningen att det inte finns någon mekanism för att bevara originalfilnamn, behörigheter, äganderätt eller datum i filsystem som saknar dessa begrepp eller har allvarliga filnamnlängdsbegränsningar, till exempel MS-DOS.

bzip2 och bunzip2 kommer som standard inte att skriva över befintliga filer. Om du vill att detta ska hända anger du -f flagga. Om inga filnamn anges, bzip2 komprimerar från standardingång till standardutgång. I detta fall, bzip2 kommer att avböja att skriva komprimerad utmatning till en terminal eftersom detta skulle vara helt obegripligt och därför meningslöst.

Linux bunzip2 flera filer

bunzip2 (eller bzip2 -d) dekomprimerar alla angivna filer. Filer som inte skapades av bzip2 kommer att upptäckas och ignoreras, och en varning utfärdas. bzip2 försöker gissa filnamnet för den dekomprimerade filen från den för den komprimerade filen enligt följande:

  • filnamn.bz2 blir filnamn
  • filnamn.bz blir filnamn
  • filnamn.tbz2 blir filnamn.tar
  • filnamn.tbz blir filnamn.tar
  • anyothername blir anyothername.out

Om filen inte slutar i något av de igenkända filtillägg – BZ2, BZ, TBZ2 eller TBZ – bzip2 klagar över att den inte kan gissa namnet på originalfilen och använder originalnamnet med .ut bifogad.

Linux bunzip2 dekomprimera tarball

Precis som med komprimering, orsakar inte filnamn dekomprimering från standardingång till standardutmatning.

bunzip2 kommer att dekomprimera en fil som är sammankopplingen av två eller flera komprimerade filer. Resultatet är sammanfogning av motsvarande okomprimerade filer. Integritetstestning (-t) av sammanfogade komprimerade filer stöds också.

Använda -c -flaggan för standardutmatning

Du kan också komprimera eller dekomprimera filer till standardutmatningen genom att ge -c flagga. Flera filer kan komprimeras och dekomprimeras så här. De resulterande utmatningarna matas sekventiellt till stdout. Komprimering av flera filer på detta sätt genererar en ström som innehåller flera komprimerade filrepresentationer. En sådan ström kan bara dekomprimeras korrekt av bzip2version 0.9.0 eller senare. Tidigare versioner av bzip2 kommer att sluta efter att den första filen i strömmen har dekomprimerats.

bzip2 Decompression

bzcat (eller bzip2 -dc) dekomprimerar alla angivna filer till standardutmatningen.

bzip2 kommer att läsa argument från miljövariablerna BZIP2 och BZIP, i den ordningen, och kommer att behandla dem innan några argument läses från kommandoraden. Detta ger ett bekvämt sätt att tillhandahålla standardargument. Komprimering utförs alltid, även om den komprimerade filen är något större än originalet. Filer på mindre än cirka 100 byte tenderar att bli större eftersom komprimeringsmekanismen har en konstant overhead i området 50 byte. Slumpmässig data (inklusive utdata från de flesta filkompressorer) kodas med cirka 8,05 bitar per byte, vilket ger en expansion på cirka 0,5 procent.

bzip2 och CRC

Som en självkontroll av ditt skydd, bzip2 använder 32-bitars CRC för att se till att den dekomprimerade versionen av en fil är identisk med originalet. Detta skyddar mot korruption av komprimerad data och mot oupptäckta fel i bzip2 (förhoppningsvis mycket osannolikt). Chansen att datakorruption går oupptäckt är mikroskopisk, ungefär en chans på fyra miljarder för varje fil som bearbetas. Var dock medveten om att kontrollen sker vid dekomprimering, så det kan bara berätta att något är fel. Det kan inte hjälpa dig att återställa den ursprungliga okomprimerade data. Du kan använda bzip2recover för att försöka återställa data från skadade filer.