Linux команды · 3 min read · Dec 16, 2025
Как разделить большой архивный файл на несколько маленьких файлов с помощью команды Split в Linux
Хотя одной из основных причин создания архивов является удобство обработки и передачи, иногда сжатый файл оказывается настолько большим, что его передача по сети становится настоящим кошмаром, особенно когда скорость сети низкая.
Итак, что делать в таких случаях? Есть ли решение этой проблемы? Да, одно решение - разделить сжатый файл на более мелкие части, которые можно легко передать по сети. На месте назначения вы можете объединить их обратно, чтобы получить оригинальный архив.
Если решение звучит интересно и вы хотите понять, как это можно сделать в Linux, вам будет приятно узнать, что мы обсудим все важные детали шаг за шагом в этом руководстве.
Перед тем как продолжить, пожалуйста, обратите внимание, что все инструкции и команды, упомянутые в этой статье, были протестированы на Ubuntu 14.04.
Как разделить большие архивы
Существует утилита командной строки - называемая Split - которая помогает вам разделять файлы на части. Она установлена по умолчанию на большинстве дистрибутивов Linux, поэтому вам не нужно выполнять никаких дополнительных шагов для ее загрузки и установки. Следующий синтаксис этой команды:
split [OPTION]... [INPUT [PREFIX]]Здесь INPUT представляет собой имя файла, который необходимо разделить на более мелкие части, а PREFIX - это текст, который вы хотите добавить к имени выходных файлов. OPTION, в нашем случае, будет -b, чтобы мы могли указать размер выходных файлов.
Чтобы понять использование Split на примере, вам сначала нужен сжатый файл, который вы хотите разделить. Например, у меня был следующий файл .zip размером 60 МБ:
Вот команда Split в действии:
Как вы можете видеть, используя опцию -b, я попросил команду Split разбить большой файл .zip на равные части по 20 МБ каждая, указав полное имя сжатого файла, а также текст префикса.
Вот как я проверил, что команда Split действительно сделала то, что от нее требовалось:
Как видно из вывода на скриншоте выше, было создано три файла с именами, включающими предоставленный мной префикс и весом по 20 МБ каждый.
Конечно, помимо файлов .zip, вы можете использовать вышеупомянутый метод для разделения других типов сжатых файлов. Например, вот как я использовал ту же команду, о которой мы говорили ранее, чтобы разделить файл .tar.xz:
Как вы, вероятно, уже поняли, если вы хотите разделить файл на несколько частей, которые должны быть размером в МБ, вам нужно использовать букву M с числовым значением, которое вы указываете в командной строке. А если - как в случае, который мы только что обсудили - файлы должны быть размером в КБ, вам следует использовать букву K.
До сих пор мы использовали только опцию -b, предлагаемую командой Split; это потому, что она делает то, что нам нужно - говорит команде разделить входной файл на основе размера, который следует за этой опцией в командной строке. Однако в зависимости от вашего случая и требований, вы можете захотеть использовать некоторые другие опции, которые предоставляет команда Split.
Следующий список опций с кратким объяснением того, что они делают:
- -a, –suffix-length=N: генерировать суффиксы длиной N (по умолчанию 2)
- –additional-suffix=SUFFIX: добавить дополнительный SUFFIX к именам файлов.
- -b, –bytes=SIZE: помещать SIZE байт на выходной файл
- -C, –line-bytes=SIZE: помещать не более SIZE байт строк на выходной файл
- -d, –numeric-suffixes[=FROM]: использовать числовые суффиксы вместо алфавитных. FROM изменяет начальное значение (по умолчанию 0).
- -e, –elide-empty-files: не генерировать пустые выходные файлы с ‘-n’
- –filter=COMMAND: записывать в оболочку COMMAND; имя файла - $FILE
- -l, –lines=NUMBER: помещать NUMBER строк на выходной файл
- -n, –number=CHUNKS: генерировать CHUNKS выходных файлов.
- -u, –unbuffered: немедленно копировать входные данные в выходные с ‘-n r/…’
До сих пор мы обсуждали только то, как разделить большой архив на несколько меньших частей. Не нужно говорить, что это бесполезно, пока вы также не знаете, как объединить их обратно, чтобы восстановить оригинальный сжатый файл. Итак, вот как вы можете это сделать:
Нет специальной утилиты командной строки для объединения меньших частей, так как старая добрая команда Cat способна справиться с этой задачей. Например, вот как я восстановил файл Kaku-linux32.zip с помощью команды Cat:
Вы можете извлечь восстановленный архив и сравнить его с оригинальным, чтобы проверить, что ничего не изменилось.
Заключение
Если вы пользователь Linux, и ваша повседневная работа связана с работой с большими сжатыми файлами и их обменом с другими по сети, есть большие шансы, что вам может понадобиться разделить архив в некоторых случаях. Конечно, решение, упомянутое в этом руководстве, может не быть единственным доступным, но это определенно одно из самых простых и наименее трудоемких.
Если вы используете другой подход для разделения больших архивов, а затем их объединения, и хотите поделиться своим решением с другими, вы можете сделать это в комментариях ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.