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

Разделяйте и объединяйте файлы из командной строки в Linux

В этом кратком руководстве я покажу, как разделять и объединять файлы из командной строки в Linux и Unix-подобных операционных системах с помощью "split" и команды "cat".

Введение

У меня на рабочем столе Linux есть много обучающих видеороликов по Linux, и я хотел переместить их все на свой Google Диск. Проблема в том, что размер некоторых видеофайлов превышает 1 ГиБ. Загружать такие большие файлы на диск Google практически не лучший подход. Несмотря на то, что Google Диск позволяет нам загружать файлы размером до 5 ТБ, я считаю, что загрузка всех больших файлов занимает очень много времени.

Обдумывая эту проблему, я подумал, что было бы намного лучше, если бы я мог разделить эти файлы на меньшие по размеру и загружать их один за другим. После этого я могу загрузить все части файла и объединить их все, когда захочу. Это всего лишь пример. У вас могут быть разные причины разбить большой файл на несколько частей и объединить их позже. Если вы когда-нибудь были в такой ситуации, не бойтесь. Существует простая утилита командной строки под названием "split", которая используется для разделения больших файлов на несколько файлов меньшего размера. Вы можете присоединиться ко всем им позже, чтобы создать один файл.

Разделение и объединение файлов из командной строки в Linux

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

Разделить файлы в Linux из командной строки

Посмотрите на размер следующего видеофайла.

du -h Linux\ Security.mp4

Пример вывода:

1.1G Linux Security.mp4

Как видите, размер видеофайла составляет 1,1 ГиБ, что очень много для загрузки на мой диск Google. Несмотря на то, что Google Диск позволяет пользователям загружать файлы размером до 5 ТБ, это действительно трудоемкий процесс. Учитывая мою низкую скорость подключения к Интернету, я предполагаю, что загрузка займет более 30 минут. Я не хочу ждать так долго. Итак, я собираюсь разделить этот файл на несколько файлов меньшего размера, например по 100 МБ каждый, чтобы ускорить процесс загрузки.

Теперь давайте разделим вышеуказанный файл на несколько файлов меньшего размера, например, по 100 МБ каждый. Для этого запустите:

split -b 100M Linux\ Security.mp4 ls.

Приведенная выше команда разбивает файл Linux Security.mp4 на фрагменты по 100 МБ. Эта команда создает файлы с именами ls.aa, ls.ab, ls.ac.. и так далее.

Давайте посмотрим на результат после разделения большого файла.

ls

Пример вывода:

'Linux Security.mp4' ls.ab ls.ad ls.af ls.ah ls.aj
 ls.aa ls.ac ls.ae ls.ag ls.ai ls.ak

Видеть? Файл Linux Security.mp4 разделен на несколько файлов с именами ls.aa, ls.ab .... ls.ak и т. д. Размер каждого файла составляет 100 МБ.

Теперь их немного проще отправить в виде вложения к электронной почте.

Объединение файлов в Linux из командной строки

Сохраните все файлы в папке. А затем перейдите в эту папку и объедините их следующим образом.

cat ls.?? > Linux_security.mp4

Здесь Linux_security.mp4 — имя выходного файла. Двойные знаки вопроса (??) соответствуют любому двухсимвольному расширению имени файла. Проще говоря, часть имени файла ls.?? соответствует всем именам файлов, таким как ls.aa, ls.ab ..etc., и объединяет их все в один файл. Помните, что эта команда объединит все файлы, содержащие двухсимвольные расширения. Поэтому будьте уверены, прежде чем объединять файлы. Если есть другие файлы с двухбуквенными расширениями, они также будут объединены в выходной файл.

Кроме того, не забудьте указать правильное расширение при их объединении. Если вы хотите отправить все файлы по почте своему другу, сообщите ему/ей правильное расширение отправленных вами файлов. Он/она должен использовать одно и то же расширение файла в выходном файле при их объединении.

Если вы не укажете ни одного аргумента в команде разделения, файл будет разделен на несколько файлов меньшего размера с именами x. По умолчанию каждый файл будет содержать 1000 строк. Здесь — это двухсимвольный суффикс, который по умолчанию добавляется к каждому имени файла.

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

split Linux\ Security.mp4

Эта команда разбивает файл безопасности Linux на несколько файлов меньшего размера с x** в качестве имен файлов.

Запустите команду «ls», чтобы просмотреть файлы:

ls

Пример вывода:

Linux Security.mp4 xaj xat xbd xbn xbx xch xcr xdb xdl xdv xef xep xez xfj
xaa xak xau xbe xbo xby xci xcs xdc xdm xdw xeg xeq xfa xfk
xab xal xav xbf xbp xbz xcj xct xdd xdn xdx xeh xer xfb xfl
xac xam xaw xbg xbq xca xck xcu xde xdo xdy xei xes xfc xfm
xad xan xax xbh xbr xcb xcl xcv xdf xdp xdz xej xet xfd
xae xao xay xbi xbs xcc xcm xcw xdg xdq xea xek xeu xfe
xaf xap xaz xbj xbt xcd xcn xcx xdh xdr xeb xel xev xff
xag xaq xba xbk xbu xce xco xcy xdi xds xec xem xew xfg
xah xar xbb xbl xbv xcf xcp xcz xdj xdt xed xen xex xfh
xai xas xbc xbm xbw xcg xcq xda xdk xdu xee xeo xey xfi

Каждый файл должен содержать 1000 строк. Вы также можете проверить это с помощью команды wc (количество слов), как показано ниже.

wc -l *

Пример вывода будет:

142891 Linux Security.mp4
 1000 xaa
 1000 xab
 1000 xac
 1000 xad
 1000 xae
 1000 xaf
 1000 xag
 1000 xah
 .
 .
 .
 1000 xfl
 891 xfm
 285782 total

Чтобы объединить все эти файлы, запустите:

cat x* > ls.mp4

Приведенная выше команда объединит все файлы в один файл с именем ls.mp4.

Более подробную информацию можно найти на страницах руководства.

man split

Рекомендуем прочитать:

  • Как разделить или извлечь отдельные страницы из PDF-файла
  • Как объединить PDF-файлы в командной строке в Linux

Заключение

В Linux могут быть доступны другие инструменты CLI и GUI для разделения или объединения файлов. Но «разделить» — это встроенная команда, которая предустановлена. Так что не утруждайте себя установкой каких-либо дополнительных инструментов на свой Linux-компьютер. Кроме того, команда разделения быстро разбивает файл на несколько частей.

Статьи по данной тематике