Skip to main content

Använda 'bzip2' för att komprimera Linux-filer

Gifs With Sound #228 (April 2025)

Gifs With Sound #228 (April 2025)
Anonim

Den enda sak du vet om Linux är att det finns mycket variation. Det finns hundratals Linux-distributioner, med dussintals skrivbordsmiljöer, flera kontorsuiter, grafikpaket och ljudpaket.

Ett annat område där Linux ger variation är när det gäller att komprimera filer.

Windows-användare vet redan vad en zip-fil är och därför kommer kommandona "zip" och "unzip" att användas för att komprimera och dekomprimera filer i zip-formatet.

En annan metod för att komprimera filer är att använda kommandot "gzip" och att dekomprimera en fil med en "gz" -tillägg som du kan använda kommandot "gunzip".

I den här guiden kommer jag att visa dig ett annat komprimeringskommando som heter "bzip2".

Varför använda 'bzip2' över 'gzip'?

Kommandot "gzip" använder LZ77-komprimeringsmetoden. Komprimeringsverktyget "bzip2" använder algoritmen "Burrows-Wheeler".

Så vilken metod ska du använda för att komprimera en fil?

Testet kör varje kommando med standardinställningarna för komprimering och du kommer att se att kommandot "bzip2" kommer ut överst när det gäller att minska filstorleken.

Men om du tittar på den tid det tar att komprimera filen tar det mycket längre tid att göra det.

Det är värt att påpeka den tredje kolumnen på diagrammet som är märkt "lzmash". Detta motsvarar att köra kommandot "gzip" med komprimeringsnivån satt till "-9" eller för att uttrycka den på engelska, "mest komprimerad".

Kommandot "lzmash" tar längre tid än "gzip" -kommandot som standard men filen minskas avsevärt och den är mindre än "bzip2" -ekvivalenten. Det är också värt att notera att det tar mindre tid att göra det.

Ditt beslut blir därför hur mycket du vill komprimera filerna med och hur länge du är villig att vänta på att det ska hända.

I båda fallen är kommandot "gzip" något bättre i båda fallen.

Komprimera filer med hjälp av "bzip2"

För att komprimera en fil med "bzip2" -formatet kör följande kommando:

bzip2 filnamn

Filen kommer att komprimeras och kommer nu att ha förlängningen ".bz2"

"Bzip2" kommer alltid att försöka komprimera filen även om filen blir större som ett resultat. Detta kan hända när du komprimerar en fil som redan har komprimerats.

Om du försöker komprimera en fil som kommer att resultera i filen med samma namn som en befintlig komprimerad fil kommer ett fel att uppstå.

Om du till exempel har en filtyp som heter "file1" och mappen redan har en fil som heter "file1.bz2" då du kör kommandot "bzip" kommer du att se följande utdata:

bzip2: Utdatafil file1.bz2 finns redan

Så här dekomprimeras filer

Det finns många olika sätt att dekomprimera filer som har "bz2" -tillägget.

Du kan använda kommandot "bzip2" enligt följande:

bzip2 -d filnamn.bz2

Detta kommer att dekomprimera filen och ta bort "bz2" -tillägget.

Om du dekomprimerar filen skulle det medföra att en fil med samma namn skrivs över, så kommer du att se följande fel:

bzip2: Filnamn för utdatafil finns redan

Ett trevligare sätt att dekomprimera filer med "bz2" -tillägget är att använda kommandot "bunzip2". Med det här kommandot behöver du inte ange några växlar som visas nedan:

bunzip2 filnamn.bz2

Kommandot "bunzip2" körs exakt på samma sätt som kommandot "bzip2" med minus d (-d) -omkopplaren.

Kommandot "bunzip2" kan extrahera alla giltiga filer som har komprimerats med "bzip" eller "bzip2". Förutom att dekomprimera vanliga filer kan den också dekomprimera tar-filer som har komprimerats med kommandot "bzip2".

Som standard kommer tar-filer komprimerade med kommandot "bzip2" att ha förlängningen ".tbz2". När du dekomprimerar den här filen med kommandot "bunzip2" blir filnamnet "filename.tar".

Om du har en giltig fil som har komprimerats med "bzip2" men den har en annan fil än "bzip2" dekomprimeras filen men den lägger till ".out" -tillägget till slutet av filen. Till exempel blir "myfile.myf" "myfile.out".

Så här tvingar du filer att komprimeras

Om du vill att kommandot "bzip2" ska komprimera en fil oavsett om en fil med "bz2" -tillägget redan existerar kan du använda följande kommando:

bzip2 -f myfile

Om du har en fil som heter "myfile" och en annan som heter "myfile.bz2" kommer filen "myfile.bz2" att skrivas över när "myfile" komprimeras.

Hur man behåller båda filerna

Om du vill behålla filen du komprimerar och den komprimerade filen kan du använda följande kommando:

bzip2 -k myfile

Detta kommer att behålla filen "Myfile", men kommer också att komprimera den och skapa en "myfile.bz2" -fil.

Du kan också använda minus k (-k) -knappen med kommandot "bunzip2" för att hålla både den komprimerade filen och okomprimerad fil medan du dekomprimerar filen.

Testa giltigheten av en "bz2" -fil

Du kan testa om en fil komprimeras med komprimeringsmekanismen "bzip2" med följande kommando:

bzip2 -t filnamn.bz2

Om filen är en giltig fil kommer ingen utmatning att returneras, men om filen inte är giltig får du ett meddelande som säger det.

Använd mindre minne när du komprimerar filer

Om kommandot "bzip2" använder för många resurser samtidigt som du komprimerar en fil kan du minska påverkan genom att ange minus s (-s) -knappen enligt följande:

bzip2-s filnamn.bz2

Observera att det tar längre tid att komprimera en fil med den här omkopplaren.

Få mer information när du komprimerar filer

Som standard när du kör kommandona "bzip2" eller "bunzip2" får du ingen utdata och den nya filen visas bara.

Om du vill veta vad som händer när du komprimerar eller dekomprimerar en fil kan du få mer verbose utgångar genom att ange minus v (-v) omkopplaren enligt följande:

bzip2 -v filnamn

Utgången kommer att visas enligt följande:

filnamn: 1.172: 1 6.872 bitar / byte 14.66% sparade 50341 i 42961 ut

De viktiga delarna är den sparade procenten, ingångsstorleken och utmatningsstorleken.

Återskapa brutna filer

Om du har en trasig "bz2" -fil så är programmet som ska användas för att försöka återställa data följande:

bzip2recover filename.bz2