Linux: How to break a large file into smaller files?
Solution 1
Use the split command.
split -b 22 m newfile.txt new
would split the file "newfile.txt" into three separate files called newaa, newab and newac each file the size of 22 MB.
Solution 2
Other answers have covered split
to combine them to one master file you just use cat
.
Solution 3
This can be done easily using split, which should be already available in the base of your distribution since it is part of gnu coreutils.
Related videos on Youtube
Cheese
Updated on September 17, 2022Comments
-
Cheese almost 2 years
I have a giant file (>20 gigs) sitting on my source machine and I need to transfer it to my target machine. For the purposes of this question, let's assume that I do not have network connectivity between the two machines.
I need to break this file into a series of smaller files, write the smaller files to DVD(s), then re-assemble everything on the target machine.
Both source and destination machines are Linux boxes. Is there a way to accomplish this using
tar
? I have a feeling that I need to use the--multi-volume
parameter. What are my options?I need to be able to specify the size of the volume files, in order to make sure that each one will fit onto a single DVD.
Thanks!
-
Robert Martin over 12 yearsBe careful of creating the prefix "new" that you share with the original file "newfile.txt". Now when you try to do
cat new* > newfile.txt
it will blow up! -
duffbeer703 over 12 years@RobertMartin Good catch!