ГлавнаяОперационные системыLinuxКак сжать и разделить файлы в Ubuntu

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

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

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

Знайте степень сжатия

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

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

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

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

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

Сжатие разделенных файлов в исходном размере файла Ubuntu

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

mkdir split
Сжатие разделенных файлов в Ubuntu Mkdir Split

Затем введите:

cd split
Сжатие разделенных файлов в Ubuntu Cd Split
  1. Используйте следующую команду, чтобы сжать файл или папку в разделенный архив:
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."
  • ~/Data/Windows10.iso – это путь и имя файла, который мы хотели сжать.
  • split -b 50mсообщает, что мы хотим разделить наш архив на части по 50 МБ. Измените это значение в соответствии с желаемым размером.
  • Windows10_ISO.tar.bz.— имя файлов разделенного архива. Обратите внимание, что в конце есть дополнительная точка. Это связано с тем, что каждый фрагмент также будет иметь номер в конце, отражающий его положение в последовательности.
Сжатие разделенных файлов в Ubuntu Tar Split Bz

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

Сжатие разделенных файлов в Ubuntu

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

Сжатие разделенных файлов в Ubuntu Размер сжатых разделенных файлов

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

cat BASE_NAME_OF_PARTS.* > BASE_NAME_OF_PARTS.bz

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

tar -xvj REASSEMBLED_ARCHIVE.bz

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

cat Windows10_ISO.tar.bz.*
tar -xvj Windows10_ISO.tar.bz

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

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

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

sudo apt install p7zip-full
Сжатие разделенных файлов в Ubuntu Установите P7zip

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

7z -vSIZE_OF_SPLIT_FILES a ARCHIVE_FILENAME FILE_TO_COMPRESS

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

7z -v50m a Windows10_iso.7z ~/Data/Windows10.iso
Сжатие разделенных файлов в Ubuntu 7z

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

Сжатие разделенных файлов в Ubuntu 7z Сжатие завершено

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

7z e FIRST_PART_OF_COMPRESSED_ARCHIVE

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

7z e Windows10_iso.7z.001

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

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

ПОХОЖИЕ СТАТЬИ

Популярные записи