Найти тему
INFINITY

Как сжимать и разделять файлы в Ubuntu

Оглавление

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

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

Знай свое сжатие

Прежде чем мы начнем, мы должны кое-что объяснить обо всех формах сжатия, которые в конечном итоге сэкономят ваше драгоценное время: оно не складывается.

При этом мы имеем в виду, что если у вас есть куча файлов с высокой степенью сжатия, вы не выиграете от их повторного сжатия с другим типом сжатия. Предположим, вы хотите поделиться файлами, такими как уже сжатые изображения JPG, видеофайлы MP4 или другие сжатые архивы. В этом случае нет смысла использовать самые высокие доступные настройки сжатия. Лучше выбрать «хранить» их (без сжатия) в архиве.

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

Классический подход Linux

Допустим, вы хотите сжать файл, подобный используемому здесь ISO Windows 10. Вы можете обратиться к классическим инструментам , как tar , split и bzip для компрессов и разбить его на более мелкие файлы.

-2

Запустите свой терминал. Быстрый способ - нажать CTRL + ALT + T . Затем перейдите в папку, в которой у вас есть большой файл, который вы хотите сохранить в разделенном архиве. Чтобы все было в порядке, создайте подпапку под названием «split», в которой мы будем хранить разделенный архив, с:

  • mkdir split
-3

Затем введите его с помощью:

  • cd split

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

  • tar -cvj FILENAME | split -b SIZE_OF_PARTS -d - "BASE NAME OF ARCHIVE"

Для нашего ISO-образа Windows 10 наша команда выглядела так:

  • tar -cvj ~/ Data/ Windows10.iso | split -b 50m -d - "Windows10_ISO.tar.bz."
  1. «~ / Data / Windows10.iso» - это путь и имя файла, который мы хотели сжать.
  2. split -b 50m заявляет, что мы хотим разделить наш архив на части по 50 МБ. Измените это значение, чтобы отразить желаемый размер.
  3. Windows10_ISO.tar.bz. - имя файла разделенного архива. Обратите внимание, что на его конце есть лишняя точка. Это потому, что каждый кусок также будет иметь номер на конце, отражающий его позицию в последовательности.
-4

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

-5

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

-6

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

  • cat BASE_NAME_OF_PARTS.* > BASE_NAME_OF_PARTS.bz

Затем извлеките его содержимое с помощью:

  • tar -xvj REASSEMBLED_ARCHIVE.bz

В нашем случае две приведенные выше команды будут выглядеть так:

кот Windows10_ISO.tar.bz. *
tar -xvj Windows10_ISO.tar.bz

Однако мы можем добиться большего, используя более новый инструмент сжатия, как вы увидите дальше.

Современное решение с высокой степенью сжатия

7Zip - это современный архиватор, который предлагает высокую степень сжатия, а также поддерживает разделение архивов. Таким образом, это лучшее решение поставленной задачи. Однако в Ubuntu этого нет. Чтобы установить версию p7zip для Linux, используйте:

  • sudo apt install p7zip-full
-7

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

  • 7z -vSIZE_OF_SPLIT_FILES a ARCHIVE_FILENAME FILE_TO_COMPRESS

В нашем примере ISO-образа Windows 10, чтобы сжать его в многостраничный архив, где каждая часть будет иметь размер 50 МБ, команда выглядит так:

  • 7z -v50m a Windows10_iso.7z ~ / Data / Windows10.iso
-8

Через некоторое время вы найдете результаты в подпапке split, и они будут занимать меньший размер, чем если бы вы использовали подход tar-split-bzip, который мы видели ранее.

-9

Чтобы вернуть свои файлы, извлеките только первый файл в последовательности, и 7z автоматически выполнит все остальные:

  • 7z e FIRST_PART_OF_COMPRESSED_ARCHIVE

В нашем примере это было:

  • 7z и Windows10_iso.7z.001

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

Считаете ли вы, что сжатые раздельные архивы практичны? Какие инструменты сжатия вы используете для борьбы с ними? Расскажите нам в разделе комментариев ниже.