I have a large file (8GB for Example). How can I split it into multiple parts, let's say 3 equal parts, and after that how do I integrate them later?
I have a large file (8GB for Example). How can I split it into multiple parts, let's say 3 equal parts, and after that how do I integrate them later?
There are several ways to accomplish this. Let's start with the basic ones.
Using the split and cat commands:
Lets says I have an image and its too big (10MB). All I do is:
and then to put it together I use cat:
For example:
Assuming am inside the folder where the image is:
if the image is inside a directory called images you can also do this:
If the image is inside the directory /home/cyrex/images you can do this:
(In all the cases above it will split
myimage.jpg
in 1MB pieces and prefix the name of the pieces with the word new. So they would look likenewaa
,newab
,newac
,newad
...)If you are splitting a Text file and want to split it by lines you can do this:
Which will split the text file in output files of 1000 lines each. This is another way to split a file and is mostly used for text files like logs, sql dumps, csv files, etc..
Then I merge them
This is one way. You can even change the size of the splitted pieces. Just change the part that says
--bytes=1M
to--bytes=1K
for 1 kilobyte or 1G for giga, or another number like--bytes=4K
for 4KB pieces.Using Nautilus
Another way is the compress option in the gui of Nautilus. It gives you an option to split the file or files you want to compress into smaller megabyte sizes. Its simple and easy.
Yet another way is using 7z
Assuming you have an ISO image called
ubuntu.iso
you could do this:This will create 5MB size files from the
ubuntu.iso
. The-v5m
is the volume size so you can change it to 10, 12, 1, 3 and also the m can be changed to k for kilobytes, etc; the-mx0
switch tells 7-Zip to use no compression, that is, just to split data into parts.To extract just do
this way you extract the first file and 7z starts extracting from the following files in order. You can also do
which has the same effect here.
Using
split -b
with the appropriate number, you can get three pieces.Number could be:
To reassemble, use cat
Manual pages will help fill the details.
Gnome split? http://gnome-split.org/
http://www.omgubuntu.co.uk/2010/08/split-large-files-easily-in-ubuntu-with-gnome-split/
HOZ - Hacha Open Zource v1.65 - http://hoz.sourceforge.net/
From the developer:
After installing, you can use the Hoz GUI by dropping
ghoz
in a terminal. The operation is so simple that needs no explanation but further information can be reached in the developer's site.Good luck!
WoodCutter
A free file split and merge utility developed in Java. It is a small size application that allows a user to split any type of file in smaller sizes in KB, MB or GB.
It is available for Linux as well as Windows.
WoodCutter offers 3 ways of merging back the original files. WoodCutter creates a merge file which can be processed by the WoodCutter application to join all the files back. In case the receiver of split files does not have WoodCutter installed, then also the original file can be obtained as WoodCutter also creates a batch file and a Shell script file to merge the files back. The batch file will be used in Windows platform and Shell script will be used in Linux platforms.
http://java-puzzle.blogspot.com/2009/07/woodcutter.html
split --number
This is a good option to generate N files with the same size, except for the last one which might be larger due to indivisibility. E.g.:
gives:
and:
gives:
Compared to
-b
+ explicit size calculation, which was mentioned at: https://askubuntu.com/a/54584/52975 , the last file may be almost 2x larger than the previous ones, which is sometimes a downside to this option. It is however more convenient many times, since you don't have to do the size calculation yourself.Equal number of lines was asked at: https://stackoverflow.com/questions/2016894/how-to-split-a-large-text-file-into-smaller-files-with-equal-number-of-lines
Tested in
split
2.28, Ubuntu 18.04.