Поиск по сайту:

Как архивировать файлы и каталоги в Linux [Часть 1]

В нашем предыдущем руководстве мы обсуждали, как сжимать и распаковывать файлы с помощью программ gzip и bzip2. Сегодня мы научимся архивировать файлы и каталоги в Linux. Разве архивирование и сжатие не одно и то же? Некоторые из вас могут часто думать, что эти термины имеют одно и то же значение. Но оба совершенно разные. Архивирование — это процесс объединения нескольких файлов и каталогов (одинакового или разного размера) в один файл. С другой стороны, сжатие — это процесс уменьшения размера файла (файлов) или каталога (каталогов). Архивирование часто используется как часть резервного копирования системы или при перемещении данных из одной системы в другую. Надеюсь, вы понимаете разницу между архивированием и сжатием. Теперь давайте перейдем к теме.

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

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

  1. смола
  2. молния

Это большая тема. Итак, я собираюсь опубликовать эту статью в двух частях. В первой части мы увидим, как архивировать файлы и каталоги с помощью команды Tar.

Архивируйте файлы и каталоги с помощью команды Tar.

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

  1. c — создать архив из файла(ов) или каталога(ов).
  2. x — извлечь архив.
  3. r — добавить файлы в конец архива.
  4. t — вывести содержимое архива.

Полный список режимов можно найти на страницах руководства.

Создать новый архив

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

$ ls ostechnix/
file.odt image.png song.mp3

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

tar cf ostechnix.tar ostechnix/

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

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

tar cf archive.tar file1 file2 file 3

Извлечь архивы

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

tar xf ostechnix.tar

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

tar xf ostechnix.tar -C Downloads/

Либо перейдите в папку «Загрузки» и извлеките из нее архив, как показано ниже.

cd Downloads/
tar xf ../ostechnix.tar

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

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

Создание gzip- и bzip-архивов.

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

Сначала давайте создадим сжатый архив:

tar czf ostechnix.tar.gz ostechnix/

Или,

tar czf ostechnix.tgz ostechnix/

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

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

$ tar czvf ostechnix.tar.gz ostechnix/
ostechnix/
ostechnix/file.odt
ostechnix/image.png
ostechnix/song.mp3

Здесь v означает многословие.

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

tar czf archive.tgz file1 file2 file3

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

tar xzf ostechnix.tgz

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

tar xzf ostechnix.tgz -C Downloads/

Теперь давайте создадим архив в формате bzip.

Для этого используйте флаг j, как показано ниже.

Создайте архив каталога:

tar cjf ostechnix.tar.bz2 ostechnix/

Или,

tar cjf ostechnix.tbz ostechnix/

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

tar cjf archive.tar.bz2 file1 file2 file3

Или,

tar cjf archive.tbz file1 file2 file3

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

Теперь давайте распакуем сжатый архив в текущий каталог. Для этого мы делаем:

tar xjf ostechnix.tar.bz2

Или распакуйте архив в другой каталог:

tar xjf ostechnix.tar.bz2 -C Downloads

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

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

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

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

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

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

Вот как мы это делаем.

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

Приведенная выше команда создаст gzip-архив моего каталога $HOME, исключая папки «Загрузки», «Документы», «Изображения» и «Музыка». Чтобы создать сжатый архив, замените z на j и используйте расширение .bz2 в приведенном выше примере.

Вывести список содержимого архивных файлов, не распаковывая их.

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

$ tar tf ostechnix.tar 
ostechnix/
ostechnix/file.odt
ostechnix/image.png
ostechnix/song.mp3

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

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

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

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

tar rf ostechnix.tar ostechnix/ sk/ example.txt

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

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

$ tar tvf ostechnix.tar 
drwxr-xr-x sk/users 0 2018-03-26 19:52 ostechnix/
-rw-r--r-- sk/users 9942 2018-03-24 13:49 ostechnix/file.odt
-rw-r--r-- sk/users 36013 2015-09-30 11:52 ostechnix/image.png
-rw-r--r-- sk/users 112383 2018-02-22 14:35 ostechnix/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
ТЛ;ДР

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

  • Обычный tar-архив: tar -cf archive.tar file1 file2 file3
  • Сжатый tar-архив: tar -czf archive.tgz file1 file2 file3
  • Заархивированный tar-архив: tar -cjf archive.tbz file1 file2 file3

Извлечение tar-архивов:

  • Обычный tar-архив: tar -xf archive.tar
  • Сжатый tar-архив: tar -xzf archive.tgz
  • Заархивированный tar-архив: tar -xjf archive.tbz

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

man tar

И это все на данный момент. В следующей части мы увидим, как архивировать файлы и каталоги с помощью утилиты Zip.

  • Как архивировать файлы и каталоги в Linux - часть 2

Статьи по данной тематике