How to Split Large ‘tar’ Archive into Multiple Files of Certain Size
Are you worried of transferring or uploading large files over a network, then worry no more, because you can move your files in bits to deal with slow network speeds by splitting them into blocks of a given size.
In this how-to guide, we shall briefly explore the creation of archive files and splitting them into blocks of a selected size. We shall use
tar, one of the most popular archiving utilities on Linux and also take advantage of the
split utility to help us break our archive files into small bits.
Before we move further, let us take note of, how these utilities can be used, the general syntax of a
split command is as follows:
# tar options archive-name files # split options file "prefix”
Let us now delve into a few examples to illustrate the main concept of this article.
Example 1: We can first of all create an archive file as follows:
$ tar -cvjf home.tar.bz2 /home/aaronkilik/Documents/*
To confirm that out archive file has been created and also check its size, we can use ls command:
$ ls -lh home.tar.bz2
Then using the split utility, we can break the
home.tar.bz2 archive file into small blocks each of size
10MB as follows:
$ split -b 10M home.tar.bz2 "home.tar.bz2.part" $ ls -lh home.tar.bz2.parta*
As you can see from the output of the commands above, the tar archive file has been split to four parts.
Note: In the split command above, the option
-b is used to specify the size of each block and the
"home.tar.bz2.part" is the prefix in the name of each block file created after splitting.
Example 2: Similar to the case above, here, we can create an archive file of a Linux Mint ISO image file.
$ tar -cvzf linux-mint-18.tar.gz linuxmint-18-cinnamon-64bit.iso
Then follow the same steps in example 1 above to split the archive file into small bits of size
$ ls -lh linux-mint-18.tar.gz $ split -b 200M linux-mint-18.tar.gz "ISO-archive.part" $ ls -lh ISO-archive.parta*
Example 3: In this instance, we can use a pipe to connect the output of the tar command to split as follows:
$ tar -cvzf - wget/* | split -b 150M - "downloads-part"
Confirm the files:
$ ls -lh downloads-parta*
In this last example, we do not have to specify an archive name as you have noticed, simply use a
How to Join Tar Files After Splitting
After successfully splitting tar files or any large file in Linux, you can join the files using the cat command. Employing cat is the most efficient and reliable method of performing a joining operation.
To join back all the blocks or tar files, we issue the command below:
# cat home.tar.bz2.parta* >backup.tar.gz.joined
We can see that after running the cat command, it combines all the small blocks we had earlier on created to the original tar archive file of the same size.
The whole idea is simple, as we have illustrated above, you simply need to know and understand how to use the various options of
You can refer to their manual entry pages of to learn more other options and perform some complex operations or you can go through the following article to learn more about tar command.
For any questions or further tips, you can share your thoughts via the comment section below.