Linux как разбить архив

Содержание
  1. Изучаем команды linux: split
  2. 1. Введение
  3. 2. Часто используемые опции
  4. 3. Разрезание файла на части заданного размера
  5. 4. Разрезание файла на заданное количество частей
  6. 5. Использование числовых суффиксов
  7. 6. Восстановление исходного файла
  8. 7. Разрезание архивов tar на лету
  9. 8. Заключение
  10. Использование tar в Linux и FreeBSD для работы с архивами
  11. Создание и распаковка архивов
  12. Создать
  13. Распаковать
  14. Примеры
  15. Распаковать в определенную папку
  16. Распаковка без вложенной папки
  17. Исключение файлов по маске
  18. Работа с архивами, разбитыми на части
  19. Описание ключей tar
  20. Команды для действия
  21. Дополнительные опции
  22. Windows
  23. Кратко: split — разделяем файлы
  24. Как разделить большой архив на несколько файлов по 15gb?
  25. А как сделать тоже самое, только с нормальным именем?
  26. Как заменить эти aa ab на цифры?
  27. Что еще можно сделать с суффиксом?
  28. Как разделить архив на два файла?
  29. А как теперь собрать все части в один архив?
  30. Как понять, что делает эта утилита?
  31. Как split работает с текстовыми файлами?
  32. Как мне разделить файл на несколько файлов по 3000 строк?
  33. Как разделить текстовый файл по 300кб не ломая структуру?
  34. Как разделить файл на основе определенного контента?
  35. 9 полезных примеров команды Split в Linux
  36. Примеры команды Split в Linux
  37. 1. Разделите файлы на несколько файлов
  38. 2. Разделите файлы на несколько файлов с определенными номерами строк
  39. 3. Разделение файлов на n файлов
  40. 4. Разделение файлов с пользовательским префиксом имени
  41. 5. Разделите и укажите длину суффикса
  42. 6. Разделить с помощью числового суффикса заказа
  43. 7. Добавьте шестнадцатеричные суффиксы для разделения файлов
  44. 8. Разделите файлы на несколько файлов определенного размера
  45. 9. Разбивка файлов на несколько с определенным размером файла
  46. Бонусный совет: воссоединение разделенных файлов

Изучаем команды linux: split

1. Введение

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

2. Часто используемые опции

-b, —bytes=SIZE
Эта опция задает размер выводимых файлов.
-d, —numeric-suffixes
использовать цифровые суффиксы вместо алфавитных
-n, —number=CHUNKS
задает количество выводимых файлов

3. Разрезание файла на части заданного размера

Если не используется опция suffix, по умолчанию команда split будет разделять файлы на части, название которых будет начинаться с x, за которым будут следовать еще два символа в алфавитном порядке. Например, первый файл будет называться xaa, за которым будет идти xab, xac, а последний файл будет называться xzz. Это значит, что в данном случае вы можете разбить свой файл не более чем на 676 частей (26×26). Возьмем для примера файл размером 10 Мб:

Теперь мы можем разбить этот файл на части размером 1 Мб с помощью опции -b:

4. Разрезание файла на заданное количество частей

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

5. Использование числовых суффиксов

Команда split позволяет создавать файлы с числовыми суффиксами вместо символьных. Приведенная ниже команда создает файл для каждого символа в строке «linuxcareer.com». Секрет заключается в том, что мы разрезаем файл, задавая размер части в байтах, а 1 байт эквивалентен 1 символу. Также вместо символьных мы используем числовые суффиксы:

6. Восстановление исходного файла

Разрезать файл легко, но как собрать его обратно? Допустим, у нас есть какой-либо ISO-образ, и мы хотим разделить его пополам.

Теперь мы разрезаем образ пополам с помощью опции -n:

Мы можем восстановить исходный файл ubuntu-12.04.1-server-amd64.iso, используя команду cat и оператор перенаправления STDOUT:

Чтобы убедиться, что файл restored-ubuntu-12.04.1-server-amd64.iso восстановлен корректно и представляет собой точную копию оригинального файла ubuntu-12.04.1-server-amd64.iso, мы используем команду md5sum для создания контрольной суммы обоих файлов:

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

7. Разрезание архивов tar на лету

Теперь, когда мы ознакомились с основами, рассмотрим более сложный пример.
В приведенном ниже примере мы архивируем директорию /tmp/Software. Однако вместо создания архива мы разрежем его на лету с помощью команды split.

Как вы можете видеть, наш архив диретории /tmp/Software разрезан на части с максимальным размером 2 Мб. Далее мы восстановим исходную директорию:

8. Заключение

Как вы можете видеть, при использовании операционной системы GNU/Linux вы ограничены только своим воображением и навыками, а не размером вашего кошелька. В данной статье описаны только основы работы с командой split. Узнать больше вы можете с помощью команды:

Читайте также:  Windows загружается экран гаснет

Источник

Использование tar в Linux и FreeBSD для работы с архивами

Утилита командной строки tar используется для работы с архивами в операционных системах на базе UNIX. С ее помощью можно архивировать данные и оптимизировать использование дискового пространства.

Создание и распаковка архивов

Создать

Создание выполняется с ключом c. Синтаксис следующий:

tar -czvf archive.tar.gz /home/dmosk

* в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/dmosk)
** где z — сжать архив в gzip (без этого параметра, tar не сжимает, а создает так называемый тарбол); c — ключ на создание архива; v — verbose режим, то есть с выводом на экран процесса (очень удобно для наблюдением за ходом работы, но в скриптах можно упустить); f — использовать файл (обязательно указываем, так как в большей степени работаем именно с файлами).

Распаковать

Распаковка выполняется с ключом x с синтаксисом:

tar -xvf archive.tar.gz

Примеры

Распаковка .gz файла:

tar -xvf archive.tar.gz

* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.

tar -xvjf archive.tar.bz2

* ключ j отвечает за работу с bz2.

Если система ругается на bzip2, значит нужно его установить:

yum install bzip2

apt-get install bzip2

pkg install bzip2

* соответственно, для CentOS (RPM based), Ubuntu (deb based), FreeBSD (BSD based).

Если видим ошибку tar: Unrecognized archive format, воспользуемся следующей командой:

bzip2 -d archive.tar.bz2

tar -xvzf archive.tar.gzip

* ключ z отвечает за работу с gzip.

Распаковывается, как gzip:

tar -xvzf archive.tgz

Распаковать в определенную папку

tar -C /home/user -xvf archive.tar.gz

* ключ -C используется для указания папки, куда необходимо распаковать файлы из архива.

Распаковка без вложенной папки

Такой способ можно использовать для распаковки в заранее подготовленный каталог. Будет некий эффект переименовывания каталога или аналог «Распаковать здесь»:

tar -C /home/admin/mytar -xvf admin.tar.gz —strip-components 1

* каталог /home/admin/mytar заранее должен быть создан; —strip-components 1 пропустит одну вложенную папку внутри архива.

Исключение файлов по маске

Если необходимо пропустить некоторые файлы, вводим команду с ключом —exclude:

tar —exclude=’sess_*’ -czvf archive.tar.gz /wwwsite

* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.

Также можно исключить несколько файлов или папок, добавляя несколько опций exclude:

tar —exclude=’/data/recycle’ —exclude=’*.tmp’ zcf /backup/samba/2021-08-29.tar.gz /data/

* в данном примере мы исключим папку recycle и файлы, которые заканчиваются на .tmp

Работа с архивами, разбитыми на части

Разбить архив на части может понадобиться по разным причинам — нехватка места на носителе, необходимость отправки файлов по почте и так далее.

Чтобы создать архив, разбитый на части, вводим команду:

tar -zcvf — /root | split -b 100M — root_home.tar.gz

* данная команда создаст архив каталога /root и разобьет его на части по 100 Мб.

В итоге мы получим, примерно, такую картину:

root_home.tar.gzaa root_home.tar.gzac root_home.tar.gzae
root_home.tar.gzag root_home.tar.gzai root_home.tar.gzab
root_home.tar.gzad root_home.tar.gzaf root_home.tar.gzah

Чтобы собрать архив и восстановить его, вводим команду:

cat root_home.tar.gz* | tar -zxv

Описание ключей tar

Команды для действия

Ключ Описание
-A Добавление файлов в архив.
-c Создание нового архивного файла.
-d Показать отличающиеся данные между каталогом-исходником и содержимым архива.
—delete Удалить файлы внутри архива.
-r Добавить файлы в конец архива.
-t Показать содержимое архива.
-u Добавить файлы, которых нет в архиве.
-x Извлечь файлы из архива.

* нельзя использовать несколько вышеперечисленных ключей в одной команде.

Дополнительные опции

Ключ Описание
—atime-preserve Оставить прежнюю метку времени доступа для файла.
-b N Задать размер блока N x 512.
-C Смена каталога. По умолчанию, используется тот, в котором мы находимся.
—checkpoint Показать имена папок при чтении архивного файла.
-G Использование старого формата инкрементального резервирования при отображении или извлечения.
-g Использование нового формата инкрементального резервирования при отображении или извлечения.
-h Не дублировать символьные ссылки. Только файлы, на которые указывают эти симлинки.
-i Игнорировать блоки нулей.
-j Использование bzip2.
—ignore-failed-read Игнорировать не читаемые файлы.
-k При распаковке, существующие файлы не заменяются соответствующими файлами из архива.
-L N Смена магнитной ленты после N*1024 байт.
-m При извлечении игнорировать время модификации объекта.
-M Многотомные архивы.
-N DATE Сохранять только более новые файлы относительно DATE
-O Направление извлекаемого на стандартный вывод.
-p Извлечение защищенной информации.
-P Не отбрасывает начальный слэш (/) из имен.
-s Сортировка файлов при извлечении.
—preserve Аналогично -ps
—remove-files Удалить исходные файлы после добавления в архив.
—same-owner Сохранить владельца при извлечении.
—totals Вывод байт при создании архива.
-v Протоколирование действий — отображение списка объектов, над которыми происходит действие.
-V NAME Создание архива на томе с меткой NAME.
—version Показать версию tar.
-w Требовать подтверждения для каждого действия.
-W Проверка архива после записи.
—exclude FILE Исключить файл FILE.
-X FILE Исключить файлы FILE.
-Z Фильтрует архив с помощью compress.
-z Использование gzip.

* актуальный список опций можно получить командой man tar.

Tar не работает с zip-архивами. В системах UNIX для этого используем утилиты zip и unzip. Для начала, ставим нужные пакеты:

yum install zip unzip

apt-get install zip unzip

pkg install zip unzip

* соответственно, для RPM based, deb based, BSD based.

zip -r archive.zip /home/dmosk

* создает архив каталога /home/dmosk в файл archive.zip.

Windows

В системе на базе Windows встроенными средствами можно распаковать только ZIP-архивы. Для работы с разными архивами рекомендуется поставить архиватор, например 7-Zip.

Источник

Кратко: split — разделяем файлы

Давненько я тут не писал, хотя заметок накопилось немало.. и начну я пока с кратких заметок. Сегодня речь пойдет об утилите split. Данная утилита позволяет разбивать файлы на несколько частей.

Когда это может быть полезным? Ну к примеру вам может потребоваться разделить большой лог-файл для того, чтобы было удобнее анализировать его на наличие ошибок. Второй вариант — разделить большой архив (что мне и потребовалось) для того, чтобы загрузить его частями на облако, в котором есть ограничения по размеру файлов…

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

Как разделить большой архив на несколько файлов по 15gb?

Самый простой способ:

В результате вы получите файлы, начинающиеся с префикса «x»:

А как сделать тоже самое, только с нормальным именем?

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

В результате архив будет разделен на эти файлы:

Как заменить эти aa ab на цифры?

Вместо «буквенного» суффикса есть и «цифровой». Чтобы им воспользоваться достаточно использовать ключ -d:

Результат будет такой:

Что еще можно сделать с суффиксом?

Можно увеличить его длину (по умолчанию длина суффикса — 2). Сделать это можно, например до 4, с помощью ключа «-a 4»:

Еще можно использовать шестнадцатеричный суффикс, воспользовавшись ключом «-x». Но на нем я не буду останавливаться.

Как разделить архив на два файла?

Тут нам поможет ключ -n:

В результате мы получим два файла, разделенные «пополам» как и хотели:

А как теперь собрать все части в один архив?

Это нельзя сделать с помощью split, но можно с помощью cat. Ниже пример того, как я собрал все части в один архив и сверил размер и чексум оригинального файла и «воссозданного»:

Как мы видим, архив «воссоздан» и готов к распаковке.

Как понять, что делает эта утилита?

На помощь приходит ключ —verbose:

Как split работает с текстовыми файлами?

По умолчанию эта утилита делит файл создавая новый файл, который содержит 1000 строк. К примеру, у меня есть файл который содержит 11266 строк. Вот на сколько файлов/и как он будет разделен:

Как мне разделить файл на несколько файлов по 3000 строк?

Тут нам поможет ключ -l 3000:

Как разделить текстовый файл по 300кб не ломая структуру?

При разделении текстового файла по размеру, используя ключ -b файлы делятся на части не сохраняя структуру, из-за чего начало строки может быть в одном файле, а ее конец — в другом. Решить эту проблему можно указав ключ «-C 300KB» (указываем максимальный размер), который разделит файл на части сохраняя структуру.

Как разделить файл на основе определенного контента?

В этом утилита split нам не поможет, но поможет csplit. Возможно о ней будет написана отдельная статья.

Источник

9 полезных примеров команды Split в Linux

Главное меню » Операционная система Linux » 9 полезных примеров команды Split в Linux

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

Мы советуем вам быстро взглянуть на команду wc, чтобы понять вывод примеров команды split.

Примеры команды Split в Linux

Синтаксис команды Split:

Давайте посмотрим, как использовать его для разделения файлов в Linux.

1. Разделите файлы на несколько файлов

По умолчанию команда split создает новые файлы для каждых 1000 строк. Если префикс не указан, он будет использовать ‘x’. Следующие буквы перечисляют файлы, поэтому сначала идет xaa, затем xab и так далее.

Давайте разделим пример файла журнала:

Если вы используете команду ls, вы можете увидеть несколько новых файлов в вашем каталоге.

Вы можете использовать wc для быстрой проверки количества строк после разделения.

Помните, что ранее мы видели, что наш исходный файл содержал 17 170 строк. Таким образом, мы можем видеть, что наша программа создала как и ожидалось, 18 новых файлов. 17 из них заполнены 1000 строками в каждой, а последняя имеет оставшиеся 170 строк.

Другой способ продемонстрировать, что происходит, – запустить команду с параметром verbose. Если вы не знакомы с verbose, вы пропускаете! Он предоставляет более подробные отзывы о том, что делает ваша система, и он доступен для использования со многими командами.

Вы можете увидеть, что происходит с вашей командой на дисплее:

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

Мы понимаем, что вам может не понравиться, что файлы разбиты на файлы по 1000 строк. Вы можете изменить это поведение с помощью опции -l.

Теперь вы можете указать, сколько строк вы хотите в каждом из новых файлов.

Как вы можете догадаться, теперь разделенные файлы имеют по 500 строк каждая, кроме последней.

Теперь у вас есть намного больше файлов, но с половиной строк в каждом.

3. Разделение файлов на n файлов

Опция -n делает разделение на указанное число частей или кусков. Вы можете назначить, сколько файлов вы хотите, добавив целочисленное значение после -n.

Теперь вы можете видеть, что есть 15 новых файлов.

4. Разделение файлов с пользовательским префиксом имени

Что делать, если вы хотите использовать split, но оставить оригинальное имя моего файла или вообще создать новое имя вместо ‘x’?

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

Вот разделенные файлы с именами, начинающимися с данного префикса.

5. Разделите и укажите длину суффикса

Разделение имеет длину суффикса по умолчанию 2 [aa, ab и т. д.]. Это изменится автоматически при увеличении количества файлов, но если вы хотите изменить его вручную, это тоже возможно. Допустим, вы хотите, чтобы наши файлы были названы как-то вроде AndreyExSeparatedLogFiles.log_aaaab.

Как ты можешь это сделать? Опция -a позволяет нам указать длину суффикса.

И вот разделенные файлы:

6. Разделить с помощью числового суффикса заказа

До этого момента вы видели, что ваши файлы разделены с использованием различных буквенных комбинаций. Лично нам гораздо проще различать файлы по номерам.

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

Так что теперь у вас будут разделенные файлы с числовыми значениями.

7. Добавьте шестнадцатеричные суффиксы для разделения файлов

Другой вариант создания суффикса – использовать встроенный шестнадцатеричный суффикс, который чередует упорядоченные буквы и цифры.

В этом примере мы объединяем несколько вещей, которые мы вам уже показали. Мы разделим файл, используя свой собственный префикс и выбрали подчеркивание для удобства чтения.

Мы использовали опцию -x для создания шестнадцатеричного суффикса. Затем разделили наш файл на 50 кусков и дали суффиксу длину 6.

И вот результат вышеупомянутой команды:

8. Разделите файлы на несколько файлов определенного размера

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

Синтаксис может стать немного сложнее, так как мы продолжаем добавлять опции. Итак, мы объясним, как работает команда, прежде чем показывать пример.

Если вы хотите создать файлы определенного размера, используйте опцию -b. Затем вы можете написать n K [B], n M [B], n G [B], где n – это значение размера вашего файла, а K [1024] – это -kibi, M – -mebi, G – -gibi и далее. КБ [1000] – килограмм, МБ – мега и т. д.

Может показаться, что многое происходит, но это не так сложно, когда разбиваешь это. Вы указали исходный файл, наш префикс имени файла назначения, числовой суффикс и разделение по размеру файла 128 КБ.

Вот разделенные файлы:

Вы можете проверить результат с помощью команды wc.

9. Разбивка файлов на несколько с определенным размером файла

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

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

Бонусный совет: воссоединение разделенных файлов

Это не команда split, но она может быть полезна для новых пользователей.

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

Как видите, наш воссозданный файл имеет тот же размер, что и наш оригинал.

Наше форматирование (включая количество строк) сохраняется в созданном файле.

Если вы новичок в Linux, мы надеемся, что это руководство помогло вам понять команду split. Если вы более опытны, расскажите нам ваш любимый способ использовать разделение в комментариях ниже!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Читайте также:  Mdx чем открыть windows
Оцените статью