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

Катран и gzip

Исторически инструментът за архивиране по подразбиране на Linux е командата tar . Първоначално това беше "Архив на лентата", но това беше обратно, когато лентите бяха основната медия за преместване на данни. Командата tar е много гъвкава и може да създава, компресира, актуализира, извлича и тества архивни файлове. Разширението по подразбиране за некомпресиран архив на таргове (понякога се нарича tar файл или tarball) е .tar, докато компресираните архиви на тар често използват разширението .tgz (което означава, че таргет е компресиран с GNU zip). Всъщност катранът предлага няколко различни метода за компресия, включително bzip2, zip, LZW и LZMA.

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

 tar cvf somefiles.tar * 

c означава създаване, v означава "verbose" (т.е. командата tar ще изведе списък на файловете, които архивира) и f казва на tar, че следващият параметър е името на архивния файл, в този случай "somefiles.tar". Заместващите * означават всички файлове в директорията, както би било за повечето команди на Linux shell.

Тарбалът "somefiles.tar" се създава в локалната директория. Това вече може да бъде компресирано с инструмент като gzip, zip, компрес или bzip2. Например:

 gzip somefiles.tar 

gzip ще компресира тарбалга и ще добави разширението .gz. Сега в локалната директория има файл somefiles.tar.gz вместо файла somefiles.tar .

Този двуетапен процес, създаване на тарбал и компресирането му може да се сведе до една стъпка, използвайки вградената компресия на катран:

 tar cvzf somefiles.tgz * 

Това ще създаде gzip компресиран tarball наречен somefiles.tgz . Допълнителната опция z причинява катран да компресира тарбала. Вместо z можете да използвате j, J или Z което казва на tar да използва bzip2, xz и LZW компресия съответно. xz въвежда LZMA2 компресия, който е същият алгоритъм като популярната програма Windows 7-Zip.

7-Zip

Възможно е да се създаде 7-Zip съвместим файл, използвайки командата 7zr . За да създадете .zz архив използвайте:

 7zr a somefiles.7z * 

a опциите означава добавяне, т.е. добавете всички локални файлове в архива somefiles.7z. Този файл може да бъде изпратен до потребител на Windows и те ще могат да извличат съдържанието без никакви проблеми.

Използването на 7zr за извършване на резервни копия на Linux не се препоръчва, тъй като 7-zip не съхранява информацията за собственика / групата за архива. Възможно е да използвате 7zr, за да компресирате тарбал (който съхранява информацията за собственика). Можете да направите това с помощта на Unix тръба, както следва:

 катран - 7zr a -si somefiles.tar.7z 

Титулярът след опцията f кани на катран да изпрати своя изход към Unix stdout а не до файл. Тъй като използваме тръба, продукцията от катран ще се подава в 7zr, който чака вход от stdin поради опцията -si . 7zr ще създаде архив, наречен somefiles.tar.7z който ще съдържа тарбал, който от своя страна съдържа файловете. Ако не сте запознати с използването на тръби, можете да създадете стандартен тарбал и след това да го компресирате с 7zr, като използвате две стъпки:

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

екстракция

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

За да извлечете проста употреба на тарбал:

 tar xvf somefiles.tar 

Където x означава екстракт.

За да извлечете компресирана употреба на тарбал:

 tar xvzf somefiles.tgz 

Опцията z казва на тар, че gzip се използва за компресиране на оригиналния архив. Вместо z можете да използвате j, J или Z в зависимост от алгоритъма за компресиране, използван при създаването на файла.

За да извлечете файловете от 7-Zip файла, използвайте:

 7zr e somefiles.tar.7z 

заключение

Linux предлага широка гама от команди за архивиране и компресиране. Опитайте да експериментирате с командите zip и xz, те работят много подобно на другите инструменти, споменати тук. Ако се забиете, трябва да опитате да прочетете страницата на човека, например man xz за допълнителна помощ.