@UNREVISED
--incremental (-G) is used in conjunction with --create (-c), --extract (--get, -x) or --list (-t) when backing up and restoring file systems. An archive cannot be extracted or listed with the --incremental (-G) option specified unless it was created with the option specified. This option should only be used by a script, not by the user, and is usually disregarded in favor of --listed-incremental=snapshot-file (-g snapshot-file), which is described below.
--incremental (-G) in conjunction with --create (-c) causes
tar
to write, at the beginning of the archive, an entry for
each of the directories that will be archived. The entry for a
directory includes a list of all the files in the directory at the
time the archive was created and a flag for each file indicating
whether or not the file is going to be put in the archive.
Note that this option causes tar
to create a non-standard
archive that may not be readable by non-GNU versions of the tar
program.
--incremental (-G) in conjunction with --extract (--get, -x) causes
tar
to read the lists of directory contents previously stored
in the archive, delete files in the file system that did not
exist in their directories when the archive was created, and then
extract the files in the archive.
This behavior is convenient when restoring a damaged file system from a succession of incremental backups: it restores the entire state of the file system to that which obtained when the backup was made. If --incremental (-G) isn't specified, the file system will probably fill up with files that shouldn't exist any more.
--incremental (-G) in conjunction with --list (-t), causes
tar
to print, for each directory in the archive, the list of
files in that directory at the time the archive was created. This
information is put out in a format that is not easy for humans to
read, but which is unambiguous for a program: each file name is
preceded by either a `Y' if the file is present in the archive,
an `N' if the file is not included in the archive, or a `D'
if the file is a directory (and is included in the archive). Each
file name is terminated by a null character. The last file is followed
by an additional null and a newline to indicate the end of the data.
--listed-incremental=snapshot-file (-g snapshot-file) acts like --incremental (-G), but when
used in conjunction with --create (-c) will also cause tar
to use the file snapshot-file, which contains information about
the state of the file system at the time of the last backup, to decide
which files to include in the archive being created. That file will
then be updated by tar
. If the file file does not exist
when this option is specified, tar
will create it, and include
all appropriate files in the archive.
The file file, which is archive independent, contains the date
it was last modified and a list of devices, inode numbers and
directory names. tar
will archive files with newer mod dates
or inode change times, and directories with an unchanged inode number
and device but a changed directory name. The file is updated after
the files to be archived are determined, but before the new archive is
actually created.
Despite it should be obvious that a device has a non-volatile value, NFS
devices have non-dependable values when an automounter gets in the picture.
This led to a great deal of spurious redumping in incremental dumps,
so it is somewhat useless to compare two NFS devices numbers over time.
So tar
now considers all NFS devices as being equal when it comes
to comparing directories; this is fairly gross, but there does not seem
to be a better way to go.
@FIXME{this section needs to be written}
Go to the first, previous, next, last section, table of contents.