Tar linux разбить архив

Содержание
  1. Split files using tar, gz, zip, or bzip2 [closed]
  2. 4 Answers 4
  3. 🗃️ Как разбить tar-архив на несколько блоков определенного размера на Linux
  4. В этом руководстве вы узнаете:
  5. Как разделить архивы tar на несколько блоков
  6. Как открыть разбитые на части архивы tar
  7. Заключение
  8. You may also like
  9. 📜 Чтение файла построчно на Bash
  10. 📧 В чем разница между IMAP и POP3
  11. ✔️ Как управлять контейнерами LXD от имени обычного.
  12. 📜 Руководство для начинающих по созданию первого пакета.
  13. Феноменальная популярность электроники Xiaomi: основные причины
  14. 📜 Получение вчерашней даты в Bash: Практическое руководство
  15. Использование специальных гелей при мышечных болях
  16. 📦 Как расширить/увеличить файловую систему VxFS на Linux
  17. Услуги по размещению серверного оборудования в ЦОД
  18. Для чего выполняется ИТ консалтинг на предприятиях?
  19. Leave a Comment Cancel Reply
  20. • Свежие записи
  21. • Категории
  22. • Теги
  23. • itsecforu.ru
  24. • Страны посетителей
  25. IT is good
  26. How to create tar archive split into, or spanning, multiple files?
  27. 7 Answers 7

Split files using tar, gz, zip, or bzip2 [closed]

I need to compress a large file of about 17-20 GB. I need to split it into several files of around 1GB per file. I searched for a solution via Google and found ways using split and cat commands. But they did not work for large files at all. Also, they won’t work in Windows; I need to extract it on a Windows machine.

Many compression programs (e.g. like 7-Zip) is able to split the compressed file into volumes of a specified size for easier distribution.

If one of the two viable solutions posted here doesn’t pan out, he’ll be needing a programming solution.

4 Answers 4

You can use the split command with the -b option:

It can be reassembled on a Windows machine using @Joshua’s answer.

copy /b file1 + file2 + file3 + file4 filetogether 

Edit: As @Charlie stated in the comment below, you might want to set a prefix explicitly because it will use x otherwise, which can be confusing.

split -b 1024m "file.tar.gz" "file.tar.gz.part-" // Creates files: file.tar.gz.part-aa, file.tar.gz.part-ab, file.tar.gz.part-ac, . 

Edit: Editing the post because question is closed and the most effective solution is very close to the content of this answer:

# create archives $ tar cz my_large_file_1 my_large_file_2 | split -b 1024MiB - myfiles_split.tgz_ # uncompress $ cat myfiles_split.tgz_* | tar xz 

This solution avoids the need to use an intermediate large file when (de)compressing. Use the tar -C option to use a different directory for the resulting files. btw if the archive consists from only a single file, tar could be avoided and only gzip used:

# create archives $ gzip -c my_large_file | split -b 1024MiB - myfile_split.gz_ # uncompress $ cat myfile_split.gz_* | gunzip -c > my_large_file 

For windows you can download ported versions of the same commands or use cygwin.

Читайте также:  Работает ли стим на линуксе

Источник

🗃️ Как разбить tar-архив на несколько блоков определенного размера на Linux

Архивы tar можно разделить на несколько архивов определенного размера, что удобно, если вам нужно поместить на диски большой объем содержимого.

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

В этом руководстве мы покажем вам команды, необходимые для разделения архивов tar на несколько блоков в системе Linux.

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

Таким образом, файлы с расширениями, такими как .tar, tar.gz, tar.xz и т. д., иожно разбить на части.

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

В этом руководстве вы узнаете:

Как разделить архивы tar на несколько блоков

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

Давайте посмотрим на пример.

Эта команда разделит tar-архив, сжатый gzip, на блоки по 5 МБ:

$ tar cvzf - example-dir/ | split --bytes=5MB - myfiles.tar.gz.
$ ls myfiles* myfiles.tar.gz.aa myfiles.tar.gz.ac myfiles.tar.gz.ae myfiles.tar.gz.ag myfiles.tar.gz.ab myfiles.tar.gz.ad myfiles.tar.gz.af

Что действительно важно, так это то, что вы также включили параметр -, который отправляет вывод tar в stdout.

Утилита split может затем интерпретировать эти данные и разбить их на несколько файлов определенного размера.

Если вам нужно разделить ваши архивы на другой размер, просто укажите правильный размер после параметра –bytes = в команде split.

Как открыть разбитые на части архивы tar

Чтобы открыть только что созданный разделенный tar-архив, вы можете использовать команду cat, переданную по пайпу команде tar.

$ cat myfiles.tar.gz.* | tar xzvf -

Параметры, которые вы используете с tar, должны быть тем, что вы обычно используете для извлечения архива, вместе с параметром -.

В нашем случае мы извлекаем tar-архив, который был сжат с помощью gzip, поэтому мы используем xzvf.

Заключение

В этом руководстве мы увидели, как создавать tar-архивы в Linux и разбивать их на несколько блоков определенного размера.

Команды tar и split идеально подходят для этой работы.

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

Читайте также:  Настройка пользователей linux debian
itisgood
📜 Сколько Килобайт в 1 Мегабайте?
🔋 Как получать уведомление о состоянии аккумулятора, когда батарея полная или разряженная

You may also like

📜 Чтение файла построчно на Bash

📧 В чем разница между IMAP и POP3

✔️ Как управлять контейнерами LXD от имени обычного.

📜 Руководство для начинающих по созданию первого пакета.

Феноменальная популярность электроники Xiaomi: основные причины

📜 Получение вчерашней даты в Bash: Практическое руководство

Использование специальных гелей при мышечных болях

📦 Как расширить/увеличить файловую систему VxFS на Linux

Услуги по размещению серверного оборудования в ЦОД

Для чего выполняется ИТ консалтинг на предприятиях?

Leave a Comment Cancel Reply

• Свежие записи

• Категории

• Теги

• itsecforu.ru

• Страны посетителей

IT is good

В этой статье вы узнаете, как удалить удаленный Git-репозиторий. Процесс прост, но его полезно запомнить, чтобы избежать неожиданностей в будущем. Git – это…

В 11-й версии своей операционной системы Microsoft серьезно переработала интерфейс и убрала несколько привычных функций. Нововведения не всем пришлись по душе. Мы дадим…

Продажа ноутбука нередко становится хлопотным занятием. Кроме поиска покупателя, продавцу необходимо подготовить устройство перед проведением сделки. Но если последовательно выполнить все шаги, ничего…

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

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

Источник

How to create tar archive split into, or spanning, multiple files?

The problem is that this command will require you to interactively give a new filename for the next file, after the first file is filled. Anybody knows of a way to skip this interactive step, and let tar do the «splitting» automatically?

7 Answers 7

Take a look at the —new-volume-script option, which lets you replace the prompting mechanism with a different mechanism or with a generated filename. ( (tar.info)Multi-Volume Archives in the tar info page.) The problem with split is that you need to cat the pieces back together to do anything, whereas a multivolume archive should be a bit more flexible.

Thanks, this is what I was looking for! I now found out that there is actually some instructions (incl. example) available here: gnu.org/software/tar/manual/tar.html#Using-Multiple-Tapes

Читайте также:  Linux to many open file

The problem with this is that it’s overly involved nonsense and promotes the opposite of proper Unix style apps.

You can use split for this:

tar czpvf - /path/to/archive | split -d -b 100M - tardisk 

This tells tar to send the data to stdout, and split to pick it from stdin — additionally using a numeric suffix ( -d ), a chunk size ( -b ) of 100M and using ‘tardisk’ as the base for the resulting filenames (tardisk00, tardisk01, tardisk02, etc.).

To extract the data afterwards you can use this:

Of course the best option to use is the —new-volume-script option.

But, if you know the size of the file (in this case, largefile.tgz), then you can do this also:

tar -c -M -L 102400 --file=disk1.tar --file=disk2.tar --file=disk3.tar largefile.tgz 
-c = Create -M = multi-volume -L 102400 = 100MB files (disk1.tar, disk2.tar, disk3.tar . ) 

(For the -L, specify as many as needed so that the total sum of the tar files is larger than largefile.tgz)

If you are trying to tar a directory tree structure

it will automatically create files of size 1.1GB, if your tar is bigger in size, you can increase the number, for an example 1000 or you can increase the input to tape-length argument.

tar --tape-length=1048576 -cMv --file=tar_archive.> backup.tar.lzma 

I’ve answered here with the better explanation here tar split archive

This command is creating 2GB chunks without the compression:

tar -cv --tape-length=2097000 --file=my_archive-.tar file1 file2 dir3 

The easiest non-interactive way would be —

Creating multipart tar from a large file (say bigfile)

$ tar cvf small.tar -L1024 -F 'echo small.tar-$ >&$' bigfile 

Extracting multipart tar to a specific directory (say /output/dir)

$ tar xvf small.tar -F 'echo small.tar-$ >&$' -C /output/dir 

You are free to select any supported compression format, block size (1024K here) and archive name (which is small.tar here).

I got it to work with the following commands:

mkdir -p ./split rm -rf ./split/* tar -cML 102400 -F 'cp "$" \ ./split/part_$.tar' \ -f split/part_1.tar large_file.tar.gz 

The only problem is that part_1.tar will actually be the last file, and the others are shifted by one. I.e. part_2.tar is actually the first part, and part_k.tar is the (n — 1) th part. Fixing this with some shell script is trivial, and left as an exercise for the reader.

Источник

Оцените статью
Adblock
detector