Подробнее о командах архивирования и сжатия в Linux

Страница руководства Tar

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

Tar и gzip

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

Чтобы создать несжатый архив всех файлов в каталоге, используйте следующую команду:

c означает создание, v означает подробный (это означает, что команда tar перечислит файлы, которые она архивирует), а f сообщает tar, что следующий параметр - это имя файла архива, в данном случае "somefiles.tar". Подстановочный знак * означает все файлы в каталоге, как и для большинства команд оболочки Linux.

Архив "somefiles.tar" создается в локальном каталоге. Теперь его можно сжать с помощью таких инструментов, как gzip, zip, compress или bzip2. Например:

gzip сожмет архив и добавит расширение .gz. Теперь в локальном каталоге есть файл somefiles.tar.gz вместо файла somefiles.tar.

Этот двухэтапный процесс, создание архива и его сжатие, можно свести к одному шагу, используя встроенное сжатие tar:

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

7-молния

Linux-сжатие-7zip

It is possible to create a 7-Zip compatible file using the 7zr command. To create a .7z archive use:

Параметры a означают добавить, т.е. добавить все локальные файлы в архив somefiles.7z. Затем этот файл можно отправить пользователю Windows, и он сможет без проблем извлечь его содержимое.

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

Дефис после параметра f указывает tar отправлять свой вывод в stdout Unix, а не в файл. Поскольку мы используем канал, вывод tar будет передан в 7zr, который ожидает ввода от stdin из-за параметра -si. Затем 7zr создаст архив с именем somefiles.tar.7z, который будет содержать tarball, который, в свою очередь, содержит файлы. Если вы не знакомы с использованием каналов, вы можете создать стандартный tarball, а затем сжать его с помощью 7zr, выполнив два шага:

Добыча

Извлечь файлы из этих разных архивов также очень просто, вот краткая шпаргалка по извлечению различных файлов, созданных выше.

Чтобы извлечь простой tar-архив, используйте:

Где x означает извлечение.

Чтобы распаковать сжатый архив, используйте:

Параметр z сообщает tar, что для сжатия исходного архива использовался gzip. Вместо z вы можете использовать j, J или Z в зависимости от алгоритма сжатия, использованного при создании файла. .

Чтобы извлечь файлы из файла 7-Zip, используйте:

Заключение

Linux предлагает широкий набор команд архивирования и сжатия. Попробуйте поэкспериментировать с командами zip и xz, они работают аналогично другим упомянутым здесь инструментам. Если вы застряли, попробуйте прочитать справочную страницу, например man xz за дополнительной помощью.

3 комментария

  1. Сжатие также полезно, если вы загружаете файлы из удаленной сети. Отличная статья

  2. rsync также может использовать сжатие для передачи файлов.

    -z или –compress

    С указанным выше параметром rsync сжимает данные при их отправке на конечный компьютер.

  3. Спасибо, этот сайт очень практичный.

Комментарии закрыты.