Опции и сравнение на файлове за компресиране на Linux

Linux File Compression Options



Компресирането като цяло е полезен метод, който по същество кодира информация, използвайки по -малко данни от оригиналния. В случая с Linux има различни опции за компресиране, всяка със своите предимства.

Общо дистрибуция на Linux предлага достъп до шепа наистина полезни и прости механизми за компресиране. Тази статия ще се фокусира само върху тях.







Видове компресия

Компресирането е кодиране и представяне на информация, използваща по -малко битове, отколкото е било първоначално. В случай на компресиране на файл, методът на компресиране използва собствен алгоритъм и математическо изчисление, за да генерира изход, който обикновено е по -малък от размера на оригиналния файл. Поради начина, по който работи различното компресиране и случайния характер на файловете, пробегът може да варира значително.



Има 2 вида компресия.



  • Загуба на компресия : Това е рисков тип компресиране, което не гарантира целостта на данните. По същество, след като бъде компресиран, съществува риск оригиналният файл да не може да бъде възстановен с помощта на компресирания архив.
    Солиден пример за този тип компресия е добре познатият MP3 формат. Когато MP3 се създава от оригиналния аудио файл, той е значително по -малък от оригиналния музикален файл източник. Това води до загуба на качество на звука.
  • Компресия без загуби : Това е най -широко използваният тип компресия. Използвайки метод за компресиране без загуби, оригиналният файл може да бъде възстановен от компресирания файл. Методите за компресиране, които ще обсъдя в тази статия, са всички методи за компресиране без загуби.

Компресиране на Linux

Повечето от методите за компресиране са достъпни от инструмента катран . Що се отнася до компресирането на zip, ще използваме цип инструмент. Ако приемем, че вашата система вече има инсталирани тези инструменти, нека започнем.





Първо се нуждаем от тест файл. Изпълнете следната команда, за да създадете такава.

$base64/dev/урадон| глава -° С 20000000 >file.txt



Той ще създаде текстов файл с размер 20MB.

Сега нека създадем 10 копия на файла. Заедно това е 200 MB.

Цип за компресия

Ципът е доста често срещан. За създаване на zip файл инструментът zip изисква следната командна структура.

$цип <изход>.zip<вход>

За да компресирате всички файлове в тестовата директория в един zip файл, изпълнете тази команда.

$ципtest.zip*

Входният размер беше 200 MB. След компресирането сега е 152 MB!

По подразбиране инструментът zip ще приложи компресията DEFLATE. Въпреки това, той също така може да използва компресия на bzip2. Не само това, можете също да създавате защитени с парола zip файлове! Научете повече за zip .

Tar за компресиране в Linux

Катранът не е метод за компресиране. Вместо това най -често се използва за създаване на архиви. Той обаче може да внедри в архива редица популярни методи за компресиране.

За обработка на архив tar (известен също като tarball) има инструмент tar. Научете повече за tar. Като цяло инструментът tar използва следната командна структура.

$катран <настроики> <изходния файл> <вход>

За да добавите тестовите файлове в един архив на tar, изпълнете следната команда.

$катран -cvftest.tar*

Тук размерът на файла остава същият.

Gzip за компресиране в Linux

GNU Zip или gzip е друг популярен метод за компресиране, който според мен е по -добър от традиционния цип поради по -доброто му компресиране. Това е продукт с отворен код, създаден от Марк Адлер и Жан-Лу Гали, който първоначално е бил предназначен да замени UNIX компресирайте полезност.

За управление на gzip архиви има 2 налични инструмента: tar и gzip. Нека да проверим и двете.

Първо, инструментът gzip. Ето как изглежда командната структура на gzip.

$gzip <опция> <вход>

Например следната команда ще замени test1.txt с компресиран файл test1.txt.gz.

$gzip -vtest1.txt

Ако искате да компресирате цяла директория с помощта на gzip, изпълнете тази команда. Тук флагът -r е за рекурсивно компресиране. Gzip ще премине през всички папки и ще компресира отделните файлове във всяка от тях.

$gzip -r <folder_path>

Gzip поддържа различни стойности на якост на компресия, започвайки от 1 (най -малко компресиране, най -бързо) до 9 (най -добро компресиране, най -бавно).

$gzip -v -9 <файл>

За по-добър контрол върху изхода и лекота на използване, tar е по-добър за задачата. Изпълнете следната команда.

$катран -cvzftest.tar.gz*

Резултатът е подобен на цип с помощта на DEFLATE, което води до 152 MB след компресиране.

Bzip2 за компресиране в Linux

Bzip2 е безплатен инструмент с отворен код, който използва алгоритъма на Burrows-Wheeler за компресиране. За първи път представен през 1996 г., bzip2 се използва силно като алтернатива на компресията на gzip.

Подобно на gzip, има 2 инструмента за работа с bzip2: tar и bzip2.

Инструментът bzip2 работи подобно на инструмента gzip. Той може да работи само с един -единствен файл наведнъж. Ето командната структура.

$bzip2 <опция> <вход>

Нека компресираме файла test1.txt. Тук флагът -v е за подробен режим.

$bzip2 -vtest1.txt

Подобно на gzip, bzip2 също поддържа различно ниво на компресия, започвайки от 1 (по подразбиране, по -малко използване на паметта) до 9 (екстремно компресиране, високо използване на паметта).

$bzip2 -v -9 <файл>

По -добрият начин за използване на компресия на bzip2 е чрез използване на tar. Използвайте следната команда.

$катран -cvjftest.tar.bz2*

Компресията е леко подобрена от предишните. Сега размерът на файла е намалял до 151.7 MB.

XZ за компресиране в Linux

Това е относително новодошъл в областта на компресията. За първи път пуснат през 2009 г., оттогава се наблюдава стабилен ръст на използването.

Инструментът за компресиране xz използва алгоритъма LZMA2, който е известен с по -голямо съотношение на компресия в сравнение с gzip и bzip2, което го прави чудесен избор, когато искате да спестите максимално количество дисково пространство. Това обаче идва с цената на по -високите изисквания за памет и консумацията на време.

Файлът, създаден от инструмента за компресиране на XZ, има разширение .xz. За компресиране на един файл можете директно да извикате инструмента XZ.

$xz<опция> <файл>

Например, изпълнете следната команда, за да компресирате файла test1.txt.

$xz-vtest1.txt

Подобно на други споменати методи на компресиране, xz също поддържа различни диапазони на якост на компресия, започвайки от 1 (най -ниска компресия, най -бърза) до 9 (най -добра компресия, най -бавна). Ако нямате никакво внимание към времето и просто искате да спестите място, тогава отидете на крайността.

$xz-v -9 <файл>

За да създадете компресиран XZ файл от всички тестови файлове, изпълнете тази команда.

$катран -cvJftest.tar.xz*

Тук размерът на изходния файл е 153.7 MB.

Извличане на компресирани архиви

Извличането на архивите, които създадохме, е по -лесно, отколкото създаването им. За да извлечете zip файл, използвайте следната командна структура.

$разархивирайте <име на файл>.zip <дестинация>

За да извлечете създадения от нас zip архив, изпълнете тази команда. Това ще извлече цялото съдържание в една и съща директория.

$разархивирайтеtest.zip

За извличане на архиви tar, tar.gz, tar.bz2 и tar.xz трябва да използваме катран инструмент. Следващата команда tar е приложима за извличане на всички тях.

$катран -xvf <archive_filename>

Например, нека извлечем всички файлове от компресирания архив на bz2.

$катран -xvftest.tar.bz2

За да декомпресирате gzip (не tar.gz) файл, изпълнете тази команда.

$gzip <gzip_file>

По същия начин следната команда ще декомпресира bzip2 архива.

$bzip2 <bzip2_file>

Същата структура на командите се прилага за xz архив.

$xz <xz_file>

Последни мисли

Надяваме се, че сега имате достатъчно знания, за да се справите със задачите за компресиране при различни обстоятелства. В зависимост от специфичното изискване, всички методи за компресиране предлагат много атрактивни функции.

Едно важно нещо, което трябва да се отбележи, е, че резултатът от компресията няма да е един и същ през цялото време. При различно въвеждане на данни изходът ще бъде различен. Например, в някои случаи xz може да предложи безумен резултат от компресия, докато в този пример не го направи. Същото важи и за другите методи.

За да научите по-задълбочено за тези инструменти, разгледайте съответната им страница за човека.

$човек цип