В дълбочина вижте командите за архивиране и компресия на Linux
Необходимостта да се пакетират и компресират файловете заедно в един архив е наоколо, тъй като компютрите първо са имали твърди дискове и тази нужда е останала до днес. Всичко от документи и снимки до софтуерни и драйвери за устройства се качва и изтегля като архив всеки ден. Повечето компютърни потребители са запознати с .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
за допълнителна помощ.