Как разделить большой архив «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’
Если у вас есть какие-либо вопросы или дополнительные советы, вы можете поделиться своими мыслями в разделе комментариев ниже.