(tar)Concatenate bis


Prev: Update bis Up: How to Add Files to Existing Archives

Concatenating Archives
----------------------

     *(This message will disappear, once this node revised.)*

   Rather than adding individual files onto the end of an archive, it
may be more convenient to add archives themselves onto the end of an
archive.  While it may seem intuitive to use `cat', the utility for
adding files together, for this purpose, archives created by `tar'
incorporate an end of file marker which must be removed if the
concatenated archives are to be read properly as one archive
FIXME: xref Ignore zeros.
   To add archives to the end of another archive, therefore, you should
use the `--concatenate' (`-A') operation.

   In earlier examples you created an archive file, `music', in your
home directory.  You have, however, since changed the contents of the
`practice' directory which was stored in that archive.  `records', the
archive file in the `practice' directory, has recently been updated,
and contains a current version of the files in `practice'.  Rather than
update the contents of `music', let's add `records' to it.

   * Change into the home directory (`cd ..')

   * Invoke `tar', and specify the operation to add archives to the end
     of another archive--`--concatenate' (`-A').

   * Specify the name of the archive file to be added
     to--`--file=ARCHIVE-NAME' (`-f ARCHIVE-NAME').

   * Specify the file name arguments, which are, unusually, the names of
     archive files.  Remember to include the directory name in the file
     name, if the archive file is not in your working directory.

     % cd ..
     % tar --concatenate --file=music practice/records

   Rather than list the new contents of `music', let's extract all the
files and see what happens.

   To concatenate archive files, use the `--concatenate' (`-A') option.
This operation adds other archives to the end of an archive. While it
may seem intuitive to concatenate archives using `cat', the utility for
adding files together, archive files which have been "catted" together
cannot be read properly by `tar'.  Archive files incorporate an end of
file marker-if archives are concatenated using `cat', this marker will
appear before the end of the new archive.  This will interfere with
operations on that archive.
FIXME: xref ignore-zeros

   In earlier examples, you stored the `~/practice' directory in an
archive file, `~/music'.  If you have been following the examples, you
have since changed the contents of the `~/practice' directory.  There
is a current version of the files in the `practice' directory, however,
stored in the archive file `~/practice/records'.

   To store current versions of the files in `practice' in the archive
file `music', you can use `--concatenate' (`-A') to add the archive file
`~/practice/records' to `music'.  First, make sure you are in your home
directory (`cd ~').  Then:

   * Invoke `tar', and specify the `--concatenate' (`-A') operation.

   * Specify the archive file to be added to--`--file=ARCHIVE-NAME'
     (`-f ARCHIVE-NAME').

   * Specify the archives to be added, using file name arguments.  In
     this case, the file name arguments are, unusually, the names of
     archive files.  (Remember to include the path in the archive name,
     if the archive file is not in your working directory.)

     % cd ~
     % tar --concatenate --file=music practice/records

   If you now list the contents of the `music', you see it now contains
the archive members of `practice/records':

     %tar --list --file=music
     blues
     folk
     jazz
     rock
     blues
     practice/blues
     practice/folk
     practice/jazz
     practice/rock
     practice/blues
     practice/classical


automatically generated by info2www version 1.2