How to Compress and Split Files in Ubuntu

In Ubuntu, the Archive Manager (or file-roller) has make it easy for anyone to compress and zip up a file or folder, but if you have a large file, say 20Gb, and you want to back it up to the CD/DVD, you will find that no amount of compression can you reduce the file size to fit into 1 CD/DVD. In such case, it is a better solution to compress and split the large file into several smaller files and store them separately. This also applies if you want to share a large file on a file-sharing site. Splitting the compressed file into several smaller files will make it easier for others to download.

Let’s say that the large file is a movie file found in /home/username/movie/large-file.avi and you want to compress, split and store the smaller files at the folder /home/username/movie/split-flies/, this is what you type in the terminal:

cd movie/split-files (change the filepath to where you want to keep the split files)
tar -cvj /home/username/movie/large-files.avi | split -b 650m -d – “large-files.tar.bz.”

You will now see several files appearing at the split-files folder, each with file size of 650MB and with filenames large-files.tar.bz.00, large-files.tar.bz.01, large-files.tar.bz.02, etc.

To recover and extract the split files, type

cat large-files.tar.bz.* > large-files.tar.bz
tar -xvj large-file.tar.bz

and you can get the original file back.

Do you know of any other ways to compress and split files in Ubuntu?

Do you like what you read here?

Receive the latest update in your inbox.

8 Comments

  • qiet72

    You wrote “tar -xvf large-file.tar.bz”
    It should read “tar -xvjf large-file.tar.bz” because the tar file was compress with bzip2 and needs to be uncompressed with the same program.

    Another more optimal way would be:
    “cat large-file.tar.gz.* | tar -xvj”

    Reply

  • Joel

    Oops, I just noticed that in my comment it’s doing the same thing as what this tutorial says. I should pay better attention to the whole command next time. Thanks for this guide :D

    Reply

  • lance

    Is their a way to do this with 7zip using deflate64

    7z a -t=zip -mm=deflate64 archive.zip file

    is how you just zip a file. but how do you split it?

    Reply

  • Florian Urban

    Hi!
    I´m i newbie, who just installed ubuntu as my las chanche to recover my shit from my laptop to my external hdd.
    io don´t look tru these command.
    My File is an iso. and its in the directory: /media/Data/movies
    filename: HD12.iso
    How do i have to enter these command in the Terminal?
    Should it looks like this: (from the example above)
    cd movie/split-files tar -cvj /home/username/movie/large-files.avi | split -b 650m -d – “large-files.tar.bz.”
    Can somebody help me, and post the correct command.
    That would be very helpful!
    Thanx!

    Reply

  • Damien

    First, create a folder call “spilt-files” in the Movies folder.

    Enter the following command in the terminal:

    cd ~/Movies/spilt-files
    tar -cvj /media/Data/movies/HD12.iso | split -b 650m -d – “large-files.tar.bz.”

    Reply