Перейти к содержанию

Как разделить большой архив «tar» на несколько файлов определенного размера

В этом руководстве мы кратко рассмотрим создание архивных файлов и разделение их на блоки заданного размера. Мы будем использовать tar, одну из самых популярных утилит для архивирования в Linux, а также воспользуемся утилитой split, чтобы разбить наши архивные файлы на мелкие биты.

Рассмотрим, как эти утилиты могут быть использованы. Следующая общая команда tar и split выглядит так:

tar options archive-name files

split options file "prefix”

Давайте теперь рассмотрим несколько примеров того, как разделить большой архив.

Пример 1

Мы можем сначала создать файл архива следующим образом:

tar -cvjf home.tar.bz2 /home/username/Documents/*

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

ls -lh home.tar.bz2

Затем, используя утилиту split, мы можем разбить файл архива home.tar.bz2 на небольшие блоки размером 100 МБ следующим образом:

split -b 100M home.tar.bz2 "home.tar.bz2.part"

ls -lh home.tar.bz2.parta*

В приведенной выше команде split опция -b используется для указания размера каждого блока, а home.tar.bz2.part является префиксом в имени каждого файла блока, созданного после разделения.

Пример 2

Как и в случае выше, здесь мы можем создать файл архива образа Ubuntu ISO.

tar -cvzf linux-ubuntu-64bit.tar.gz linuxubuntu-64bit.iso

Затем выполните те же шаги в примере 1, чтобы разделить файл архива на мелкие блоки размером 300 МБ.

ls -lh linux-ubuntu-64bit.tar.gz

split -b 300M linux-ubuntu-64bit.tar.gz "ISO-archive.part"

ls -lh ISO-archive.part*

Пример 3

В этом случае мы можем использовать поток (pipe) перенаправляя вывода команды tar для разделения, следующим образом:

tar -cvzf - wget/* | split -b 150M - "downloads-part"

Убедимся в том что разделение прошло успешно:

ls -lh downloads-parta*

В этом последнем примере нам не нужно указывать имя архива, просто используйте знак.

Как соединить файлы после разделения

После успешного разделения файлов tar в Linux, вы можете соединить файлы с помощью команды cat. Использование команды cat является наиболее эффективным и надежным методом выполнения операции соединения.

Чтобы объединить все блоки файла tar, мы вводим следующую команду:

cat home.tar.bz2.part* > backup.tar.bz2.joined

Мы видим, что после запуска команды cat, она объединяет все мелкие блоки, которые мы ранее создали, в исходный файл архива tar того же размера.

Как разархивировать файлы после объединения

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

tar -xvjf backup.tar.bz2.joined -C /home/user/Documents/