From e5abc1fe99340b979b18864d978179f71fe8f5c5 Mon Sep 17 00:00:00 2001 From: vlapa Date: Sat, 13 Jun 2026 20:33:26 +0300 Subject: First --- ...60 \321\207\320\260\321\201\321\202\320\270.md" | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 "LINUX/\320\232\320\260\320\272 \321\200\320\260\320\267\320\261\320\270\321\202\321\214 \321\204\320\260\320\271\320\273 \320\275\320\260 \321\207\320\260\321\201\321\202\320\270.md" (limited to 'LINUX/Как разбить файл на части.md') diff --git "a/LINUX/\320\232\320\260\320\272 \321\200\320\260\320\267\320\261\320\270\321\202\321\214 \321\204\320\260\320\271\320\273 \320\275\320\260 \321\207\320\260\321\201\321\202\320\270.md" "b/LINUX/\320\232\320\260\320\272 \321\200\320\260\320\267\320\261\320\270\321\202\321\214 \321\204\320\260\320\271\320\273 \320\275\320\260 \321\207\320\260\321\201\321\202\320\270.md" new file mode 100644 index 0000000..88b812e --- /dev/null +++ "b/LINUX/\320\232\320\260\320\272 \321\200\320\260\320\267\320\261\320\270\321\202\321\214 \321\204\320\260\320\271\320\273 \320\275\320\260 \321\207\320\260\321\201\321\202\320\270.md" @@ -0,0 +1,71 @@ +В некоторых случаях один файл нужно разбить на несколько частей, например, для загрузки либо копирования в случае слишком большого размера. Проще всего это сделать с помощью утилиты ==split. + +Команда используется для разбивки файлов по размеру, количеству строк и на определенное количество составных частей. +### Разбить по размеру + +Для этого используем опцию "-b", определяющую максимальный размер элемента. За основу возьмем файлик в 721 байт. Его нужно разбить на части по 100 байт. Для удобства зададим префикс имени "file-part_": + + +`$ ls -l +`721 Apr 20 13:11 file_orig + + +`$ split -b 100 ./file_orig ./file-part_ + + +Помимо оригинала появятся еще 8 файлов: + + +`$ ls -l +`721 Apr 20 13:11 file_orig +`100 Apr 20 13:12 file-part_aa +`... +`21 Apr 20 13:12 file-part_ah + + +Разбить по количеству строк + +Может быть нужно разбить один текстовый документ на несколько, с количеством строк "<= n". В этом вопросе полезной окажется опция "-l". Команда поделит большой log-файл на части по 10 тысяч строк в каждом: + + +`$ split -l 1000 ~/Logs/log ~/Logs/log-part_ + +### Разбить на определённое количество файлов + +Еще одна интересная задача, в решении которой поможет опция "-n". Размер будет, по возможности, поделен поровну. Достаточно прописать итоговое количество файлов и запустить команду: + + +`$ split -n 3 ./file_orig ./file-part_ + + +`$ ls -l +`240 Apr 20 13:31 file-part_aa +`240 Apr 20 13:31 file-part_ab +`241 Apr 20 13:31 file-part_ac +`721 Apr 20 13:11 file_orig + + +Настройка имени частей файла + +Как мы уже поняли, для split префикс определяет название части файла, после чего идет дефолтный суффикс из двух латинских букв. + +С помощью опций можно изменить его длину "-a", переключиться на числа "-d" или hex-символы "-x". В последних двух сценариях получится выбрать начальную точку отчета "--numeric-suffixes" для чисел и "--hex-suffixes" для hex-символов. + +Возьмем задачу – разделить текстовый файл на 3 части равного размера, чтобы каждый из них имел префикс "file-part_" и числовой суффикс из одного символа, начиная с 1: + + +$ split -a 1 --numeric-suffixes=1 -n 3 ./file_orig ./file-part_ + + +$ ls -l +240 Apr 20 13:36 file-part_1 +240 Apr 20 13:36 file-part_2 +241 Apr 20 13:36 file-part_3 + + +Объединение частей файла + +Следующий шаг – объединение нескольких частей в единый файл. Для этих целей отлично подойдет утилита cat. Сначала нужно задать имена частей, потом итоговый файл: + + +`cat ~/Archive/split-archive.part_* > ~/Archives/cat-archive.tar.gz -- cgit v1.2.3