Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

According to this page, one can let tar create a tar archive "split" into 100 Mb files:

tar -c -M --tape-length=102400 --file=disk1.tar largefile.tgz

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?

share|improve this question

migrated from May 31 '11 at 13:51

This question came from our site for system and network administrators.

up vote 17 down vote accepted

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. (( 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.

share|improve this answer
That's true, of course. – Eduardo I. May 31 '11 at 14:00
Thanks, this is what I was looking for! I now found out that there is actually some instructions (incl. example) available here: – Samuel Lampa Jun 1 '11 at 9:17

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 'disk' as the base for the resulting filenames (tardisk00, tardisk01, etc.).

To extract the data afterwards you can use this:

cat tardisk* | tar xzpvf -
share|improve this answer
Small correction, -d is for numeric suffix, not prefix. – yclian Dec 23 '14 at 13:16

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

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.