Как архивировать файлы linux

Как заархивировать файлы и каталоги в Linux

Zip — это наиболее широко используемый формат архивных файлов, поддерживающий сжатие данных без потерь.

Zip-файл — это контейнер данных, содержащий один или несколько сжатых файлов или каталогов. Сжатые (заархивированные) файлы занимают меньше места на диске, их можно перенести с одного компьютера на другой быстрее, чем несжатые файлы. Zip-файлы можно легко извлечь в Windows, macOS и Linux с помощью утилит, доступных для всех операционных систем.

В этом руководстве мы покажем вам, как архивировать (сжимать) файлы и каталоги в Linux с помощью команды zip .

zip Команда

zip — это утилита командной строки, которая помогает создавать Zip-архивы.

Команда zip имеет следующий синтаксис:

zip OPTIONS ARCHIVE_NAME FILES 

Чтобы создать Zip-архив в определенном каталоге, пользователю необходимо иметь права на запись в этот каталог.

Zip-файлы не поддерживают информацию о владельце в стиле Linux. Извлеченные файлы принадлежат пользователю, выполняющему команду.

Чтобы сохранить право собственности на файл и права доступа, используйте команду tar .

Утилита zip не устанавливается по умолчанию в большинстве дистрибутивов Linux, но вы можете легко установить ее с помощью диспетчера пакетов вашего дистрибутива.

Установите Zip в Ubuntu и Debian

Установите Zip на CentOS и Fedora

Как архивировать файлы и каталоги

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

zip archivename.zip filename1 filename2 filename3
adding: filename1 (deflated 63%) adding: filename2 (stored 0%) adding: filename3 (deflated 38%) 

По умолчанию команда zip печатает имена файлов, добавленных в архив, и метод сжатия. Мы объясним методы и уровень сжатия позже в этом руководстве.

При указании имени архива Zip, если вы опускаете расширение .zip оно будет добавлено автоматически, если имя архива не содержит точки. zip archivename.zip filename создаст архив с тем же именем, что и zip archivename filename .

Чтобы подавить вывод команды zip , используйте параметр -q :

zip -q archivename.zip filename1 filename2 filename3

Часто вы создаете Zip-архив каталога, включающего содержимое подкаталогов. Параметр -r позволяет рекурсивно просматривать всю структуру каталогов.

Читайте также:  Change system path linux

Чтобы создать Zip-архив каталога, вы должны использовать:

zip -r archivename.zip directory_name

Вы также можете добавить несколько файлов и каталогов в один архив:

zip -r archivename.zip directory_name1 directory_name2 file1 file1

Методы и уровни сжатия

Метод сжатия Zip по умолчанию — deflate . Если утилита zip определяет, что файл нельзя сжать, она просто сохраняет файл в архиве, не сжимая его с помощью метода store . В большинстве дистрибутивов Linux утилита zip также поддерживает метод сжатия bzip2 .

Чтобы указать метод сжатия, используйте параметр -Z .

zip -r -Z bzip2 archivename.zip directory_name
. adding: sub_dir/ (stored 0%) adding: sub_dir/file1 (bzipped 52%) adding: sub_dir/file2 (bzipped 79%) 

Команда zip позволяет указать уровень сжатия с помощью числа с префиксом от 0 до 9. Уровень сжатия по умолчанию -6 . При использовании -0 все файлы будут сохраняться без сжатия. -9 заставит команду zip использовать оптимальное сжатие для всех файлов.

Например, чтобы использовать уровень сжатия -9 , введите что-то вроде этого:

zip -9 -r archivename.zip directory_name

Чем выше уровень сжатия, тем интенсивнее процесс архивирования, и для его завершения потребуется больше времени.

Создание ZIP-файла, защищенного паролем

Если у вас есть конфиденциальная информация, которую необходимо сохранить в архиве, вы можете зашифровать ее с помощью параметра -e :

zip -e archivename.zip directory_name

Вам будет предложено ввести и подтвердить пароль архива:

Enter password: Verify password: 

Создание разделенного Zip-файла

Представьте, что вы хотите сохранить Zip-архив на сервисе хостинга файлов, который имеет ограничение на размер загружаемого файла 1 ГБ, а ваш Zip-архив — 5 ГБ.

Вы можете создать новый разделенный Zip-файл, используя параметр -s с указанием размера. Множитель может быть k (килобайты), m (мегабайты), g (гигабайты) или t (терабайты).

zip -s 1g -r archivename.zip directory_name

Приведенная выше команда продолжит создание новых архивов в наборе после достижения указанного предельного размера.

archivename.zip archivename.z01 archivename.z02 archivename.z03 archivename.z04 

Примеры ZIP

Создайте Zip-архив с именем archivename.zip, содержащий все файлы в текущем каталоге.

То же, что и выше, включая скрытые файлы (файлы, начинающиеся с точки):

Создайте Zip-архив с именем archivename.zip содержащий все файлы MP3 в текущем каталоге, без сжатия файлов.

Выводы

В Linux вы можете создавать Zip-архивы с помощью команды zip .

Чтобы распаковать ZIP-архив в системе Linux, вы можете использовать команду unzip .

Если вы хотите узнать больше о Zip, посетите страницу Zip Man .

Источник

15 примеров команды tar для сисадминов и девопсов

img

Название tar архива образовано от сочетания Tape ARchive, так как было разработано для записи последовательных данных на ленточные устройства. Также иногда встречается название tarball.

По умолчанию tar архивирует файлы только без сжатия, но с использованием некоторых частей. Мы можем использовать различные методы сжатия, чтобы на выходе получить архив меньшего размера. Утилита tar обычно включается в большинство дистрибутивов Linux по умолчанию, а сам формат поддерживается другими операционными системами, включая Windows и macOS, с помощью различных инструментов и утилит.

Читайте также:  Linux red hat free

В этой статье мы рассмотрим некоторые общие примеры использования команды tar и поддерживаемые флаги.

1. Создание tar архива

Для создания обычного архива без сжатия достаточно ввести команду ниже:

Здесь флаги c обозначает создание, v обозначает подробный вывод и f обозначает имя файла архива tar . По соглашению укажите имя файла tar с расширением .tar . Архивируемые файлы могут быть определены с помощью подстановочных знаков или же можно указать один файл или несколько файлов/путей.

В качестве примера можно привести три файла в каталоге:

Создание tar архива

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

Создание tar архива

Также можно указать только конкретные файлы для архивирования, например:

Создание tar архива

2. Создание сжатого архива (GZ)

tar позволяет не только архивировать файлы, но и сжимать их для экономии места. Одним из популярных форматов сжатия является gunzip , обычно представленный расширением .gz после .tar или как tgz . Мы можем использовать флаг z , чтобы указать, что файлы должны быть сжаты с помощью gunzip . Вот пример:

Создание сжатого архива

Можно заметить, что размер архивных файлов существенно отличается, хотя оба содержат одни и те же три файла. Это связано с использованием сжатия с использованием флага z .

3. Создание сжатого архива (BZ)

tar поддерживает несколько других форматов сжатия. Одним из них является bz2 или bzip2 , который представлен расширением tar.bz2 или иногда как tbz2 . Это может дать вам меньший размер архива, но, в свою очередь, потребляет больше ЦП, так что процесс сжатия/декомпрессии может быть медленнее, чем gz архив. Для создания bz архива используется флаг j :

Создание сжатого архива

4. Распаковка всех файлов

Архив tar (сжатый или несжатый) можно извлечь с помощью опции x . Ниже приведены примеры, поясняющие его использование:

Распаковка всех файлов

Эта команда также работает для сжатого архива формата gz :

Распаковка всех файлов

И даже для архива со сжатием bz2 :

Распаковка всех файлов

5. Просмотр содержания архива

Чтобы перечислить содержимое архива tar , можно использовать флаг t , как показано ниже:

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

6. Распаковка конкретных файлов

Из архива tar , tar.gz или tar.bz2 можно извлечь как все файлы, так и один конкретный файл, указав имя файла:

Распаковка конкретных файлов

Аналогично, можно указать несколько имен файлов, разделенных пробелом, чтобы извлечь их вместе за один переход.

Распаковка конкретных файлов

7. Распаковка с помощью маски

Чтобы извлечь один или несколько файлов с помощью шаблона PATTERN , используйте флаг —wildcards :

Распаковка с помощью маски

8. Добавление файлов в архив

В существующий несжатый архив можно добавлять новые файлы используя флаг r или —append с новыми именами файлов или шаблоном подстановочных символов (помните, что это работает только с несжатыми TAR-файлами, а не со сжатыми форматами tar.gz или tar.bz2 ):

Читайте также:  Установка двух ос windows linux

Добавление файлов в архив

Можно увидеть, что содержимое списка archive.tar показывает два только что добавленных файла.

9. Удаление файлов из архива

Удаление определенных файлов из архива tar возможно с помощью флага —delete , как показано ниже (сравните список tar до и после удаления файлов):

Удаление файлов из архива

Опять же это работает только для несжатых архивов и завершится неудачей для сжатых форматов архива.

10. Создание архива с проверкой

При создании несжатых архивных файлов можно проверить содержимое архива, используя флаг W как показано ниже:

Создание архива с проверкой

Этот флаг нельзя использовать с флагами сжатия, хотя можно сжать созданный файл tar позже с помощью gzip или других инструментов.

11. Распаковка архива в папку

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

Распаковка архива в папку

12. Использование флага –diff

Можно использовать флаг —diff или d для поиска любых изменений между файлами в архиве tar и файлами в файловой системе. Вот пример, который запускает diff один раз, когда файл внутри архива и снаружи был один и тот же. Если запустить команду снова после обновления файла, то можно увидеть разницу в выходных данных.

Использование флага –diff

13. Исключение файлов

Исключение определенных файлов может быть обязательным при создании архивов tar . Этого можно достичь с помощью флага —exclude .

Исключение файлов

Как можно заметить из приведенных выше выходных данных, можно задать флаг —exclude несколько раз, чтобы указать несколько имен файлов или шаблонов связывая их логическим AND . Следует отметить, что из шести файлов в директории в приведенном выше примере только два файла удовлетворяли условию, которое должно быть включено в archive.tar.gz .

14. Просмотр размера содержимого архива

Размер содержимого сжатого архива tar можно получить с помощью следующей команды:

Просмотр размера содержимого архива

Аналогично для архива bz2 :

Просмотр размера содержимого архива

15. Архивация с сохранением разрешений

По умолчанию команда tar сохраняет разрешение архивированных файлов и каталогов, хотя можно явно указать его с помощью флага -p или —preserve-permissions , как показано ниже.

Архивация с сохранением разрешений

Заключение

tar — полезная утилита в системах Unix/Linux в течение долгого времени и в первую очередь использовалась в задачах архивирования и резервного копирования. С течением времени утилита развивалась и приобретала многие опции. Он может использоваться для простых и сложных задач, если вы знаете, какие функции он предлагает. В этой статье описаны некоторые основные операции, которые можно выполнить с помощью команды tar , и показано, как она может помочь в выполнении повседневных задач системного администрирования.

Для получения дополнительных сведений обратитесь воспользуйтесь встроенным руководством Linux с помощью команда man tar или используйте команду tar —help или tar —usage .

Источник

Оцените статью
Adblock
detector