Linux сжать папку tar gz

Содержание
  1. Архивирование файлов TAR
  2. Архивирование файлов и папок с помощью tar
  3. Краткий список команд
  4. Создание нового архива
  5. Извлечение архива
  6. Создание архива в формате GZIP и BZIP
  7. Создание архива из нескольких каталогов или файлов одновременно
  8. Исключить каталоги или файлы при создании архива
  9. Список содержимого архива без извлечения
  10. Добавление файлов в существующий архив
  11. 15 примеров команды tar для сисадминов и девопсов
  12. 1. Создание tar архива
  13. 2. Создание сжатого архива (GZ)
  14. 3. Создание сжатого архива (BZ)
  15. 4. Распаковка всех файлов
  16. 5. Просмотр содержания архива
  17. 6. Распаковка конкретных файлов
  18. 7. Распаковка с помощью маски
  19. 8. Добавление файлов в архив
  20. 9. Удаление файлов из архива
  21. 10. Создание архива с проверкой
  22. 11. Распаковка архива в папку
  23. 12. Использование флага –diff
  24. 13. Исключение файлов
  25. 14. Просмотр размера содержимого архива
  26. 15. Архивация с сохранением разрешений
  27. Заключение

Архивирование файлов TAR

Архивирование — это процесс объединения нескольких файлов и каталогов в один файл. А сжатие — это процесс уменьшения размера файлов или каталогов. Архивирование часто используется для резервного копирования системы или при перемещении данных. Надеюсь, теперь вы понимаете разницу между архивированием и сжатием. Давайте перейдем к теме.

Наиболее распространенные программы для архивирования файлов и каталогов:

Архивирование файлов и папок с помощью tar

Tar — это команда Unix, которая обозначает Tape Archive. Она используется для объединения или сжатия нескольких файлов в один файл. В утилите tar есть 4 основных режима работы.

  • c — Создать архив из файлов или каталогов.
  • x — Извлечь архив.
  • r — Добавить файлы в конец архива.
  • t — список содержимого архива.

Краткий список команд

  • Простой tar архив: tar -cf archive.tar file1 file2 file3
  • gzip tar архив: tar -czf archive.tgz file1 file2 file3
  • bzip tar архив: tar -cjf archive.tbz file1 file2 file3
  • Простой tar архив: tar -xf archive.tar
  • gzip tar архив: tar -xzf archive.tgz
  • bzip tar архив: tar -xjf archive.tbz

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

Для целей данной статьи я буду использовать папку с именем mordeniuss, которая содержит файлы трех разных типов.

ls mordeniuss/ file.odt image.png song.mp3

Теперь давайте создадим новый tar-архив каталога mordeniuss.

tar cf mordeniuss.tar mordeniuss/

Здесь флаг c обозначает создание нового архива, а f — имя файла.

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

tar cf archive.tar file1 file2 file3

Извлечение архива

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

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

tar xf mordeniuss.tar -C Downloads/

Или перейдите в папку Downloads и распакуйте архив внутри нее, как показано ниже.

cd Downloads/ tar xf ../mordeniuss.tar

Также вы можете извлечь файлы только определенного типа. Например, следующая команда извлекает файлы типа «.png».

tar xf mordeniuss.tar --wildcards "*.png"

Создание архива в формате GZIP и BZIP

По умолчанию Tar создает архивный файл с расширением .tar. Кроме того, команда tar может использоваться в сочетании с утилитами сжатия gzip и bzip2. Файлы оканчиваются расширениями .tar, ссылаются на обычный архив tar, файлы оканчиваются на tar.gz или .tgz, обозначает архив gzip, а файлы tar заканчиваются на tar.bz2 или .tbz — архив bzip, соответственно.

Читайте также:  Open source linux servers

Во-первых, давайте создадим сжатый архив:

tar czf mordeniuss.tar.gz mordeniuss/ или tar czf mordeniuss.tgz mordeniuss/

Здесь мы используем флаг z для сжатия архива методом сжатия gzip.

Вы можете использовать флаг v для просмотра прогресса при создании архива.

tar czvf mordeniuss.tar.gz mordeniuss/ mordeniuss/ mordeniuss/file.odt mordeniuss/image.png mordeniuss/song.mp3

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

tar czf archive.tgz file1 file2 file3

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

Чтобы извлечь архив в другую папку, используйте флаг -C

tar xzf mordeniuss.tgz -C Downloads/

Давайте создадим архив bzip. Для этого используйте флаг j, как показано ниже.

tar cjf mordeniuss.tar.bz2 mordeniuss/ или tar cjf mordeniuss.tbz mordeniuss/

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

tar cjf archive.tar.bz2 file1 file2 file3 или tar cjf archive.tbz file1 file2 file3

Распакуем архив в текущем каталоге. Для этого используем:

Для извлечения в другой каталог:

tar xjf mordeniuss.tar.bz2 -C Downloads

Создание архива из нескольких каталогов или файлов одновременно

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

tar czvf mordeniuss.tgz Downloads/ Documents/ mordeniuss/file.odt

Приведенная выше команда создаст архив из папок Downloads, Documents и файла file.odt в каталоге mordeniuss и сохранит архив в текущем рабочем каталоге.

Исключить каталоги или файлы при создании архива

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

tar czvf mordeniuss.tgz /home/sk --exclude=/home/sk/Downloads --exclude=/home/sk/Documents --exclude=/home/sk/Pictures --exclude=/home/sk/Music

Приведенная выше команда создаст сжатый архив моего каталога $HOME, исключая папки Downloads, Documents, Pictures и Music. Чтобы создать архив bzip, замените z на j и используйте расширение .tbz в примере.

Список содержимого архива без извлечения

Чтобы просмотреть содержимое, используйте флаг t.

tar tf mordeniuss.tar mordeniuss/ mordeniuss/file.odt mordeniuss/image.png mordeniuss/song.mp3

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

tar tvf mordeniuss.tar drwxr-xr-x sk/users 0 2018-03-26 19:52 mordeniuss/ -rw-r--r-- sk/users 9941 2018-03-24 13:49 mordeniuss/file.odt -rw-r--r-- sk/users 36014 2015-09-30 11:52 mordeniuss/image.png -rw-r--r-- sk/users 112382 2018-02-22 14:35 mordeniuss/song.mp3

Добавление файлов в существующий архив

Файлы или каталоги могут быть добавлены / обновлены в существующие архивы с помощью флага r. Посмотрите на следующую команду.

tar rf mordeniuss.tar mordeniuss/ sk/ example.txt

Приведенная выше команда добавит каталог sk и файл example.txt в архив mordeniuss.tar.

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

tar tvf mordeniuss.tar drwxr-xr-x sk/users 0 2018-03-26 19:52 mordeniuss/ -rw-r--r-- sk/users 9942 2018-03-24 13:49 mordeniuss/file.odt -rw-r--r-- sk/users 36013 2015-09-30 11:52 mordeniuss/image.png -rw-r--r-- sk/users 112383 2018-02-22 14:35 mordeniuss/song.mp3 drwxr-xr-x sk/users 0 2018-03-26 19:52 sk/ -rw-r--r-- sk/users 0 2018-03-26 19:39 sk/linux.txt -rw-r--r-- sk/users 0 2018-03-26 19:56 example.txt

Источник

Читайте также:  Система управления базами данных линукс

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

img

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

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

В этой статье мы рассмотрим некоторые общие примеры использования команды 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 :

Читайте также:  Install ruby on kali linux

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

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

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

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

Можно увидеть, что содержимое списка 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