Как архивировать файлы и каталоги в Linux [Часть 1]
В нашем предыдущем руководстве мы обсуждали, как сжимать и распаковывать файлы с помощью программ gzip и bzip2. Сегодня мы научимся архивировать файлы и каталоги в Linux. Разве архивирование и сжатие не одно и то же? Некоторые из вас могут часто думать, что эти термины имеют одно и то же значение. Но оба совершенно разные. Архивирование — это процесс объединения нескольких файлов и каталогов (одинакового или разного размера) в один файл. С другой стороны, сжатие — это процесс уменьшения размера файла (файлов) или каталога (каталогов). Архивирование часто используется как часть резервного копирования системы или при перемещении данных из одной системы в другую. Надеюсь, вы понимаете разницу между архивированием и сжатием. Теперь давайте перейдем к теме.
Архивировать файлы и каталоги в Linux
Наиболее распространенными программами для архивирования файлов и каталогов являются;
- смола
- молния
Это большая тема. Итак, я собираюсь опубликовать эту статью в двух частях. В первой части мы увидим, как архивировать файлы и каталоги с помощью команды Tar.
Архивируйте файлы и каталоги с помощью команды Tar.
Tar — это команда Unix, которая означает Tapeape Archive. Он используется для объединения или хранения нескольких файлов (одинакового или разного размера) в один файл. Утилита tar имеет 4 основных режима работы.
- c — создать архив из файла(ов) или каталога(ов).
- x — извлечь архив.
- r — добавить файлы в конец архива.
- 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