В прошлой статье мы обсудили, как сжимать и распаковывать файлы с помощью программ gzip и bzip2. В этой небольшой статье вы узнаете, как архивировать файлы и каталоги в Linux.
Архивация и сжатие — некоторые из вас часто думают, что эти термины имеют одинаковое значение. Но они оба совершенно разные.
Архивирование — это процесс объединения нескольких файлов и каталогов (одинакового или разного размера) в один файл. С другой стороны, сжатие — это процесс уменьшения размера файла (ов) или каталогов (директорий). Архивирование часто используется как часть резервных копий системы или при перемещении данных из одной системы в другую.
Архивирование файлов и каталогов с помощью tar и zip
Наиболее распространенными программами для архивирования файлов и каталогов являются:
- Tar
- Zip
В этой статье я постараюсь подробно рассказать, как архивировать файлы и каталоги с помощью команды Tar.
Tar — это команда Unix, которая обозначает T ape A rchive. Она используется для объединения или хранения нескольких файлов (одинакового или разных размеров) в один файл. В утилите tar есть 4 основных режима работы.
c — Создание архива из файла (ов) или каталога (ов).
x — Извлечение архива.
r — Добавить файлы в конец архива.
t — Перечислить содержимое архива.
Создать новый архив
В этом примере я буду использовать папку с именем linuxthebest, которая содержит три разных типа файлов.
ls linuxthebest/
eminem_-_the_real_slim_shady.mp3 Screenshot.png test.txt
Теперь давайте создадим новый tar-архив каталога linuxthebest.
Для этого введите в терминале
tar cf linuxthebest.tar linuxthebest/
Здесь флаг c означает создание нового архива, а f — имя файла.
Аналогично, чтобы создать архив из набора файлов в текущем рабочем каталоге, используйте следующую команду:
tar cf archive.tar файл1 файл2 файл3
Извлечь архив
Чтобы извлечь архив в текущем каталоге, просто выполните команду:
tar xf linuxthebest.tar
Вы также можете извлечь архив в другой каталог, используя флаг C. Например, следующая команда извлекает данный файл архива в каталог Загрузки.
tar xf linuxthebest.tar -C Загрузки/
Вы также можете перейти в папку «Загрузки» и извлечь архив прямо туда, как показано ниже.
cd Загрузки/
tar xf ../linuxthebest.tar
Иногда вам может понадобиться извлечь файлы определенного типа. Например, следующая команда извлекает файлы типа «.png».
tar xf linuxthebest.tar --wildcards "*.png"
Создание архивов с поддержкой gzip и bzip
По умолчанию Tar создает файл архива который заканчивается на .tar. Но также, команда tar может использоваться совместно с утилитами сжатия gzip и bzip2. Файлы которые заканчиваются на .tar — это простой архив TAR, файлы которые заканчиваются на tar.gz или .tgz относятся к сжатому gzip архиву, и tar файлы которые заканчиваются на tar.bz2 или .tbz относятся к сжатому bzip’ом архиву.
Давайте сначала создадим архив gzip:
tar czf linuxthebest.tar.gz linuxthebest/
Или,
tar czf linuxthebest.tgz linuxthebest/
Здесь мы используем флаг z для сжатия архива с использованием метода сжатия gzip.
Вы можете использовать флаг v для просмотра прогресса при создании архива.
tar czvf linuxthebest.tar.gz linuxthebest/
Чтобы создать gzip-архив из списка файлов вам понадобится команда:
tar czf archive.tgz file1 file2 file3
Чтобы извлечь архив gzip в текущий каталог, используйте:
tar xzf linuxthebest.tgz
Чтобы извлечь архив в другую папку, используйте флаг -C.
tar xzf linuxthebest.tgz -C Загрузки/
Теперь давайте создадим архив bzip.
Для этого используйте флаг j, как показано ниже.
Создайте архив каталога:
tar cjf linuxthebest.tar.bz2 linuxthebest/
Или,
tar cjf linuxthebest.tbz linuxthebest/
Создать архив из списка файлов:
tar cjf archive.tar.bz2 file1 file2 file3
Или,
tar cjf archive.tbz file1 file2 file3
Чтобы отобразить прогресс упаковки и сжатия, используйте флаг v.
Теперь давайте извлечем архив bzip в текущий каталог. Для этого введите в терминале:
tar xjf linuxthebest.tar.bz2
Или извлеките архив в другой каталог:
tar xjf linuxthebest.tar.bz2 -C Загрузки/
Создать архив из нескольких каталогов и/или файлов одновременно
Это еще одна крутая функция tar-команды. Чтобы создать архив из нескольких каталогов или файлов сразу, используйте следующую команду:
tar czvf linuxthebest.tgz Загрузки/ Документы/ linuxthebest/test.txt
Вышеприведенная команда создаст архив каталогов Загрузки, Документы и текстовый файл text.txt в каталог linuxthebest и сохранит архив в текущем рабочем каталоге.
Как исключать каталоги и/или файлы при создании архива
Это очень полезно при резервном копировании данных. Вы можете исключить все те файлы или каталоги из своей резервной копии которые вам не нужны. И для этого существует -exclude. Например, вы хотите создать архив своего домашнего каталога, но вы хотите исключить файлы Загрузки, Документы, Изображения и Музыку.
Вот как мы это сделаем.
tar czvf linuxthebest.tgz /home/linuxthebest --exclude=/home/linuxthebest/Загрузки --exclude=/home/linuxthebest/Документы --exclude=/home/linuxthebest/Изображения --exclude=/home/linuxthebest/Музыка
Вышеупомянутая команда создала архив gzip моего домашнего каталога, за исключением каталогов «Загрузки», «Документы», «Изображения» и «Музыка». Чтобы создать архив с bzip, замените z на j и используйте расширение .bz2 в приведенном выше примере.
Список содержимого архива без его извлечения
Чтобы перечислить содержимое архива, вы должны использовать флаг t.
tar tf linuxthebest.tar
Чтобы просмотреть подробный вывод, используйте флаг v.
tar tvf linuxthebest.tar
Добавить файлы в существующие архивы
Файлы или каталоги могут быть добавлены/обновлены в существующие архивы с использованием флага r. Посмотрите на следующую команду.
tar rf linuxthebest.tar linuxthebest/ Документы/ test1.txt
Вышеупомянутая команда добавит каталог с именем «Документы» и файл с именем test1.txt в архив linuxthebest.tar.
Вы можете проверить, добавлены ли файлы или нет, с помощью команды:
tar tvf linuxthebest.tar
Создать архивы tar:
- Обычный tar-архив: tar -cf archive.tar file1 file2 file3
- Архив Gzip: tar -czf archive.tgz file1 file2 file3
- Архив Bzip: tar -cjf archive.tbz file1 file2 file3
Извлечение архивов tar:
- Обычный архив tar: tar -xf archive.tar
- Архив Gzip: tar -xzf archive.tgz
- Архив Bzip: tar -xjf archive.tbz
И это все на данный момент. В следующей статье вы увидите, как архивировать файлы и каталоги с помощью утилиты Zip.
Всем удачного дня.
второй скриншот вроде выпадает из контекста?