Архивирование файлов TAR¶
Архивирование — это процесс объединения нескольких файлов и каталогов в один файл. А сжатие — это процесс уменьшения размера файлов или каталогов. Архивирование часто используется для резервного копирования системы или при перемещении данных. Надеюсь, теперь вы понимаете разницу между архивированием и сжатием. Давайте перейдем к теме.
Наиболее распространенные программы для архивирования файлов и каталогов:
- tar
- zip
Архивирование файлов и папок с помощью tar¶
Tar — это команда Unix, которая обозначает Tape Archive. Она используется для объединения или сжатия нескольких файлов в один файл. В утилите tar есть 4 основных режима работы.
- c — Создать архив из файлов или каталогов.
- x — Извлечь архив.
- r — Добавить файлы в конец архива.
- t — список содержимого архива.
Краткий список команд¶
Создание tar архивов:
- Простой 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 архив: tar -xf archive.tar
- gzip tar архив: tar -xzf archive.tgz
- bzip tar архив: tar -xjf archive.tbz
Создание нового архива¶
Для целей данной статьи я буду использовать папку с именем mordeniuss, которая содержит файлы трех разных типов.
Теперь давайте создадим новый tar-архив каталога mordeniuss.
Здесь флагc обозначает создание нового архива, а f — имя файла.
Аналогично, чтобы создать архив из набора файлов в текущем рабочем каталоге, используйте эту команду:
Извлечение архива¶
Чтобы извлечь архив в текущем каталоге, просто выполните:
Мы также можем извлечь архив в другой каталог, используя флаг -C. Например, следующая команда извлекает данный архивный файл в каталог загрузок.
Или перейдите в папку Downloads и распакуйте архив внутри нее, как показано ниже.
Также вы можете извлечь файлы только определенного типа. Например, следующая команда извлекает файлы типа «.png».
Создание архива в формате GZIP и BZIP¶
По умолчанию Tar создает архивный файл с расширением .tar. Кроме того, команда tar может использоваться в сочетании с утилитами сжатия gzip и bzip2. Файлы оканчиваются расширениями .tar, ссылаются на обычный архив tar, файлы оканчиваются на tar.gz или .tgz, обозначает архив gzip, а файлы tar заканчиваются на tar.bz2 или .tbz — архив bzip, соответственно.
Во-первых, давайте создадим сжатый архив:
Здесь мы используем флаг z для сжатия архива методом сжатия gzip.
Вы можете использовать флаг v для просмотра прогресса при создании архива.
tar czvf mordeniuss.tar.gz mordeniuss/mordeniuss/mordeniuss/file.odtmordeniuss/image.pngmordeniuss/song.mp3
Чтобы создать сжатый архив из списка файлов:
Чтобы распаковать архив в текущем каталоге, используйте:
Чтобы извлечь архив в другую папку, используйте флаг -C
Давайте создадим архив bzip. Для этого используйте флаг j, как показано ниже.
Создание архива из списка файлов:
Распакуем архив в текущем каталоге. Для этого используем:
Для извлечения в другой каталог:
Создание архива из нескольких каталогов или файлов одновременно¶
Это еще одна крутая особенность команды tar. Чтобы создать сжатый архив из нескольких каталогов или файлов одновременно, используйте эту команду:
Приведенная выше команда создаст архив из папок 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.
Чтобы просмотреть подробный вывод, используйте флаг 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. Посмотрите на следующую команду.
Приведенная выше команда добавит каталог 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.mp3drwxr-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