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

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


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

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

Прежде чем двигаться дальше, давайте обратим внимание на то, как можно использовать эти утилиты. Общий синтаксис команд tar и split следующий:

tar options archive-name files 
split options file "prefix”

Давайте теперь углубимся в несколько примеров, чтобы проиллюстрировать основную концепцию этой статьи.

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

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

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

ls -lh home.tar.bz2

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

split -b 10M home.tar.bz2 "home.tar.bz2.part"
ls -lh home.tar.bz2.parta*

Как видно из вывода приведенных выше команд, архивный файл tar разделен на четыре части.

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

Пример 2: Как и в приведенном выше случае, здесь мы можем создать архивный файл файла образа Linux Mint ISO.

tar -cvzf linux-mint-18.tar.gz linuxmint-18-cinnamon-64bit.iso 

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

ls -lh linux-mint-18.tar.gz 
split -b 200M linux-mint-18.tar.gz "ISO-archive.part"
ls -lh ISO-archive.parta*

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

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

Подтвердите файлы:

ls -lh downloads-parta*

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

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

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

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


cat home.tar.bz2.parta* >backup.tar.gz.joined

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

Заключение

Вся идея проста: как мы показали выше, вам просто нужно знать и понимать, как использовать различные параметры утилит tar и split.

Вы можете обратиться к страницам ввода вручную, чтобы узнать больше о других параметрах и выполнить некоторые сложные операции, или вы можете прочитать следующую статью, чтобы узнать больше о команде tar.

Не пропустите: 18 полезных примеров команд ‘tar’

Если у вас есть какие-либо вопросы или дополнительные советы, вы можете поделиться своими мыслями в разделе комментариев ниже.