Provided by: dar_2.4.8-1ubuntu1_amd64 bug

NAME

       dar - create, test, list, extract, compare, merge, isolate  dar archives

SYNOPSIS

       dar [-c | -x | -l | -d | -t | -C | -+] [<path>/]<basename> [<options>] [<user targets>]

       dar -h

       dar -V

DESCRIPTION

       dar is a full featured backup tool, aimed for disks (floppy, CD-R(W), DVD-R(W), zip, jazz,
       etc.) and since release 2.4.0 adapted to tapes.

       dar can store a backup in several files (called "slices" in  the  following)  of  a  given
       size,  eventually pausing or running a user command/script before starting the next slice.
       This can allow for example, the burning of the last generated slice on a CD-R, or changing
       a  floppy disk before continuing on the next one.  Like its grand-brother, the great "tar"
       command, dar may also use compression, at the difference that compression is  used  inside
       the  archive  to  be  able  to  have  compressed  slices of the defined size. But the most
       important feature of dar is its ability to make  differential  backups.  In  other  words,
       backups that contain only new files or files that have changed from a backup of reference.
       Moreover with differential backup, dar also stores files that have been deleted since  the
       backup  of  reference.  Thus,  when  restoring,  first  a  full  backup,  then  additional
       differential backups, at each restoration you get the exact state of the filesystem at the
       time  of  the  backup. And of course, the reference backup may be a full or a differential
       backup itself.

       dar is the first backup program I know that can also remove files during  restoration!  By
       the  way,  in  this  document,  "archive"  and  "backup" mean the same thing, and are used
       interchangeably.

       Unlike the tar command, dar has not to read a whole archive  to  know  its  contents:  dar
       archive  contains a table of contents (aka "catalogue") located at the end of the archive,
       so it seeks into the archive forth and backward to extract only the required files,  which
       is  much  faster  than  what  tar  is  used  to do. Since release 2.4.0 dar can also use a
       sequential reading mode, in which dar acts like tar, just reading byte by byte  the  whole
       archive  to know its contents and eventually extracting file at each step. In other words,
       the archive contents is located at both locations, all along the archive used for tar-like
       behavior  suitable  for  sequential access media (tapes) and at the end for faster access,
       suitable for random access media (disks).  However note that tar archive and  dar  archive
       are  not  compatible. Dar does not known anything about tar archive structure, neither tar
       known anything about dar archive structure. So keep using tar if you are  used  to  it  or
       find no advantage in using dar. Note also that the sequential reading mode let you extract
       data from a partially written archive (those that failed to complete due to a lack of disk
       space for example).

       Since  release  2.4.0,  a  "relax" reading mode is available that let dar to either ignore
       some incoherence in archive structure, or use internal redundant information  to  overcome
       what  seems to be data corruption, and in last resort ask the user on what to do when some
       archive structure information is missing. This relax mode can be used with both sequential
       and  direct access read modes. Note however that you should rather use Parchive to protect
       your data rather than just relying on the "relax" mode, which has to be seen as a the last
       chance  solution,  as  this  mode  cannot repair the archive, but may only lead to partial
       archive extraction upon archive corruption. For immediate Parchive integration  with  dar,
       use the "par2" user target defined in /etc/darrc.

       A few words about slice before going deeper in detail: a slice is just a simple file which
       name is composed of a "basename" followed by a dot, then a number, again  a  dot  and  the
       extension  (dar)  to  form  the filename of that slice. On the command line you will never
       have to give the full file name of a slice, just the basename. The number between the dots
       is  the  slice  number,  which  starts from 1 and may be arbitrary large (as large as your
       system can support the corresponding filename).

       Let's take an example:
                           considering the basename "joe", dar will make one  or  several  slices
                           during  backup  process  (depending  on your choice). The filenames of
                           these slices will be: joe.1.dar joe.2.dar ... joe.10.dar ... etc.   If
                           you  want  to extract, list, or use this backup as reference, you will
                           only have to use the basename, which  is  the  string  "joe"  in  this
                           example.

OPTIONS

       COMMANDS:

       Only  six  commands  define  what  action  will  be done by dar: Archive creation, archive
       extraction,  archive  listing,  archive  testing,  archive  comparison  with   filesystem,
       catalogue  isolation  and  archive  merging. These commands are described here below. Once
       defined, a large set of options can be used to modify the way the  command  is  performed.
       These  options  are described just after the commands chapter. Last, optional user targets
       may follow options, their use is described at the end of this document.

       Important note: Not all system actually support long options (Solaris, FreeBSD, ...).  For
       example  --create  will  not  be  available  on these systems, and you will have to use -c
       instead. In the same way, not all system do support optional  arguments  (FreeBSD  without
       GNU  getopt  for  example),  you then need to explicitly give the argument, for example in
       place of "-z" you will need to give "-z 9", see "EXPLICIT  OPTIONAL  ARGUMENTS"  paragraph
       near the end of this document for details on that point.

       -c, --create [<path>/]<basename>
                           creates  a  backup  with  the name based on <basename>. All the slices
                           will be created in the directory <path>  if  specified,  else  in  the
                           current  directory.  If  the  destination  filesystem  is too small to
                           contain all the slices of the backup, the -p  option  (pausing  before
                           starting  new  slices)  might  be  of  interest. Else, in the case the
                           filesystem is full, dar will suspend the  operation,  asking  for  the
                           user  to  make  free  space, then continue its operation. To make free
                           space, the only thing you cannot  do  is  to  touch  the  slice  being
                           written.  If  the filename is "-" *and* no slicing is asked for (no -s
                           option) the archive is produced on the standard  output  allowing  the
                           user  to  send  the  resulting  archive through a pipe (or into a tape
                           device).

       -x, --extract [<path>/]<basename>
                           extracts files from the given backup. Slices are expected to be in the
                           current  directory  or  in  the  directory given by <path>. It is also
                           possible to use symbolic links to gather slices that are  not  in  the
                           same directory. Path may also point to a removable device (floppy, CD,
                           etc.), in this case, to be able to mount/unmount the device, you  must
                           not  launch  dar  from  that  directory.  In  other words, the current
                           directory must not be that directory (see tutorial for  details).  The
                           basename  may  be  set  to  "-", in direct access mode (the default an
                           historical mode), you will need dar_slave to work with dar (see -i and
                           -o options, as well as dar_slave man page). However in sequential read
                           mode (--sequential-mode is used on command-line), dar  will  read  the
                           archive from standard input (see also -i option).

       -l, --list [<path>/]<basename>
                           lists  the  contents  of  the given backup.  dar will only require the
                           last slice of the archive in direct access mode. If however sequential
                           mode  is used, dar will read the overall archive, from the first slice
                           to the last one. "-" can be used as basename, the behavior is the same
                           as with -x option (read just above).

       -t, --test [<path>/]<basename>
                           checks  the backup integrity. Even without compression, dar is able to
                           detect at least one error  per  file  in  the  archive,  thanks  to  a
                           variable  length  CRC  recorded per file in the catalogue. Same remark
                           here, "-" may be used as basename (see -x option above for details).

       -d, --diff [<path>/]<basename>
                           compares saved files in the  backup  with  those  in  the  filesystem.
                           <basename> may also be "-" (see -x option above for details).

       -C, --isolate [<path>/]<basename>
                           isolate  a catalogue from its archive. The argument is the basename of
                           the file that will contain the catalogue. The -A option  is  mandatory
                           here  to  give  the name of the archive to extract the catalogue from.
                           Slicing is available (-s -S -p -b etc.). If the filename is "-"  *and*
                           no slice is asked (no -s option) the isolated catalogue is produced on
                           the standard output, allowing the user to send the  resulting  archive
                           through a pipe. Note that there is no difference in concept between an
                           isolated catalogue and an archive. Thus you can do all operation on an
                           isolated   catalogue,  in  particular  take  it  as  reference  for  a
                           differential archive. An archive produced with -C is almost equivalent
                           to differential archive done right after a full backup, (no data is in
                           it). Since release 2.4.0 you can use an isolated catalogue  to  rescue
                           the internal catalogue when it is corrupted (see -A option).

       -+, --merge [<path>/]<basename>
                           create  a  subset  archive  from  one  or  two  existing archives (the
                           resulting archive name is the argument to this command). The dar  file
                           selection  mechanism  (see below) let the user decide which files will
                           be present in the resulting archive and which  one  will  be  ignored.
                           This option thus let the user merge two archives in a single one (with
                           a filtering mechanism that accepts all files), as well as this  option
                           let  the user create a smaller archive which data is taken from one or
                           two archives of reference. Note that at no time the  contents  of  the
                           archives of reference is extracted to real files and directories: this
                           is an archive to archive transfer,  thus  you  may  lack  support  for
                           Extended  Attribute  while  you will be able to fully manipulate files
                           with their Extended Attributes from one archive to the resulting  one.
                           If  the  basename  is  "-" *and* no slice is asked (no -s option), the
                           archive is produced on standard output allowing the user to  send  the
                           resulting  archive  through  a  pipe.  The  first mandatory archive of
                           reference if provided thanks  to  the  -A  option,  while  the  second
                           "auxiliary"  (and optional) archive of reference is provided thanks to
                           the -@ option. When a tie contention occurs (same file names from both
                           archive have to be merged), the overwriting policy (-/ option) is used
                           to define the one to  keep  in  the  resulting  archive.  By  default,
                           archive  data selected for merging is uncompressed, and re-compressed.
                           Thus the merging operation can be used to change compression algorithm
                           of  given  archive  as  well as change its encryption. But, for better
                           performance it is also possible thanks to the -ak  option  (see  below
                           the  -ak  option  for  usage restrictions) to merge files keeping them
                           compressed, thus no decompression/re-compression is performed at  all,
                           which  make the operation faster. Last it is not possible to merge two
                           isolated catalogues.

       -h, --help          displays help usage.

       -V, --version       displays version information.

       GENERAL OPTIONS:

       -v, --verbose[=s[kipped]]
                           verbose  output.  --verbose  and  --verbose=skipped  are  independent.
                           --verbose=skipped  displays the files being excluded by filters, while
                           --verbose display actions under process. You can still use dar's  exit
                           status  to known which way the operation ended (seen EXIT CODES at the
                           end of this document).

       -q, --quiet         Suppress the final statistics report. If no verbose  output  is  asked
                           beside this option, nothing is displayed if the operation succeeds.

       -b, --beep          makes the terminal ring when user action is required (like for example
                           the creation of a new slice using the -p option)

       -n, --no-overwrite  do not allow overwriting of any slice.

                           If an overwriting policy is specified (see -/  option)  -n  option  do
                           only  apply  to  slices  overwriting,  the overwriting of files during
                           restoration or merging is handled by the overwriting policy. -n option
                           stay valid to forbid slice overwriting (merging, saving, isolation).

       -w, --no-warn       Do  not warn before overwriting (applied for slice overwriting and for
                           overwriting decision make  by  the  overwriting  policy).  By  default
                           overwriting is allowed but a warning is issued before proceeding. This
                           option may receive 'a' as argument (see just below):

       -wa, --no-warn=all  This implies the -w option, and means that over avoiding  warning  for
                           file  overwriting, DAR also avoid signaling a file about to be removed
                           when its type is not the expected one. File are removed when they have
                           been   recorded   as  deleted  since  the  archive  of  reference.  At
                           restoration of the differential archive, if a file of the  given  name
                           exists, it is remove, but if the type does not match the file that was
                           present at the time of the  archive  of  reference  (directory,  plain
                           file, fifo, socket, char or block device, etc.), a warning is normally
                           issued to prevent the accidental removal of data that was not saved in
                           the backup of reference. (See also -k option)

       -R, --fs-root <path>
                           The  path  points  to the directory tree containing all the files that
                           will be enrolled in the operation (backup, restoration or comparison).
                           By  default  the current directory is used. All other paths used in -P
                           or -g options on the command line are and must  be  relative  to  this
                           path  (or  to current directory if -R is not present). Note that -R is
                           useless for testing (-t option) isolation (-C option) and merging  (-+
                           option)

       -X, --exclude <mask>
                           The  mask  is  a  string  with wildcards (like * and ? see glob(7) for
                           details) which is applied to filenames which are not directories. If a
                           given  file  matches  the  mask, it is excluded from the operation. By
                           default (no -X on the command line), no  file  is  excluded  from  the
                           operation.  -X  may  be  present several times on the command line, in
                           that case a file will not be considered for the given operation if  it
                           matches at least one -X mask. See also -ar and -am options.

       -I, --include <mask>
                           The  mask  is  applied  to  filenames  which  are not directories (see
                           glob(7) for details on wildcard characters). If a given  file  matches
                           the  mask  and  does  not  match  any  mask given with -X, the file is
                           selected for the operation. By default (no -I and no -X on the command
                           line),  all  files  are  included for the operation. -I may be present
                           several times on the command line, in that case all  file  that  match
                           one of the -I mask will be considered for the given operation, if they
                           do not also match one of the -X mask. See also -ar and -am options.

       -P, --prune <path>  Do not consider file or directory sub-tree given by the path.  -P  may
                           be present several time on the command line. The difference with -X is
                           that the mask is not applied only to the filename,  but  also  include
                           the  path.  Moreover  it applies also to directories (-X does not). By
                           default (no -P on the command-line), no sub-tree or file  is  excluded
                           from  the  operation,  and  all the directory tree (as indicated by -R
                           option) is considered. Note that <path> may contains wildcards like  *
                           or ? see glob(7) man page for more information.

       -g, --go-into <path>
                           Files  or  directory to only take in account, as opposed to -P. -g may
                           be  present  several  time  on  command-line.  Same  thing  here,  the
                           difference  with  -I  is that the mask is applied to the path+filename
                           and also concerns directories. By  default  all  files  under  the  -R
                           directory  are  considered.  Else,  if one or more -g option is given,
                           just those are selected (if they do not  match  any  -P  option).  All
                           paths  given  this  way  must be relative to the -R directory. This is
                           equivalent as giving <path> out of any  option.   Warning,  -g  option
                           cannot receive wildcards, these would not be interpreted.

       -[, --include-from-file <listing_file>
                           Files  listed  in  the listing file are included for the operation. No
                           wildcard expression is interpreted  in  the  listing  file,  the  null
                           character  is  not allowed and the carriage return is used to separate
                           file names (one file name per line). Note that this option applies  to
                           any  files  and  directory  exactly  as  -g  does,  with  an important
                           difference however: -g option only uses relative  paths  to  the  root
                           directory  (the  directory given with the -R option), while -[ can use
                           absolute path as well. Another difference is when the  argument  is  a
                           directory -g will include all the subdirectories under that directory,
                           while when the same entry is found in a listing file given to -[  only
                           that  directory  will be included, no subdirectory or subfile would be
                           enrolled in the backup, with -[ you need to list the exact set of file
                           you  want  to  backup.  You  can thus generate a listing file with the
                           'find / -print > somefile' command and give 'somefile' as argument  to
                           -[  option. Note that however, dar will never save files out of the -R
                           given root directory tree, even if some are listed in  the  'somefile'
                           file.

       -], --exclude-from-file <listing_file>
                           Files listed in the listing file are excluded from the operation. If a
                           directory is listed in the file all its contents is  excluded  (unless
                           using ordered method and another mask includes some of its subfiles or
                           subdirectories). This option is the opposite of -[ and acts  the  same
                           was  as  -P  option  does  (in  particular it is compared to the whole
                           path+filename and applies to files and directories). As for -[ option,
                           -]  listing  file  can  contain  absolute paths, but wildcards are not
                           expanded, neither.

       File selection in brief:

       As seen above, -I -X -P, -g, -[ and -] options are used to select the files to operate on.
       -I  and -X only use the name of files and do not apply to directories, while -P, -g -[ and
       -] use the filename *and* the path, they *do* apply to directories.

       since version 2.2.0 two modes  of  interpretation  of  these  options  exist.  The  normal
       original method and the ordered method:

              the normal method is the default and is the one that has been presented above:
                   A  directory is elected for operation if no -P or -] option excludes it. If at
                   least one -g or -[ option is given one command line, one -g option must  cover
                   it,  else  it is not elected for operation. If a directory is not selected, no
                   recursion is done in it (the directory is pruned). For non directories  files,
                   the  same  is  true (P, -g, -[ and -] do apply) and a second test must also be
                   satisfied: no -X option must exclude the filename, and  if  at  least  one  -I
                   option is given, one must match the given filename (using or not wildcards).

              the ordered method (when -am option is given on command-line):
                   The  ordered  method  takes care of the order of presence between -X and -I in
                   one hand and of -P, -g, -[ and -] in the other hand (note that it has also the
                   same  action  concerning EA selection when using -u and -U options, but that's
                   no more file  selection).  In  the  ordered  method  the  last  argument  take
                   precedence over all the previous ones, let's take an example:

                   -X "*.mp?" -I "*.mp3" -I "toto*"
                        Here dar will include all files except file of name "*.mp?" (those ending
                        with "mpX" where X is any character), but it will however  include  those
                        ending with ".mp3". It will also include files which name begin by "toto"
                        whatever they end with. This way, "toto.mp2"  will  be  saved  (while  it
                        matches  "*.mp?"  it also begins by "toto") as well as "toto.txt" as well
                        as "joe.mp3" (while it matches "*.mp?" it also ends by "mp3").  But  will
                        not  be saved "joe.mp2" (because it does not begin by "toto", nor ends by
                        "mp3", and match "*.mp?" mask). As we see the  last  option  (-I  or  -X)
                        overcomes  the  previous one. -P, -g, -[ and -] act together the same but
                        as seen above they do  not  only  act  on  filename,  but  on  the  whole
                        path+filename.  Note  that (-g, -P, -[, -]) and (-X , -I) are independent
                        concerning their relative order. You can mix -X -I -g -P  -]  -[  in  any
                        order,  what  will  be  important is the relative positions of -X options
                        compared to -I options, and the relative positions of -g  -[  -]  and  -P
                        options between them.

              In  logical terms, if <prev_mask> is the mask generated by all previous mask on the
              command line, -I <mask> generates the new following mask: <prev_mask> or  <mask>  .
              While  -X <mask> generates the new following mask: <prev_mask> and not <mask>. This
              is recursive each time you add a -I or -X option. Things work the same with -P, -g,
              -[ and -] options.
       This ends the file selection explication let's continue with other options.

       -u, --exclude-ea <mask>
                           Do  not  consider the Extended Attributes (EA) that are matched by the
                           given mask. By default, no EA are excluded, if the support for EA  has
                           been  activated  at compilation time. This option can be used multiple
                           times.

       -U, --include-ea <mask>
                           Do only consider the EA that match the given mask. By default, all  EA
                           are  included  if no -u or -U option is present and if the support for
                           EA has been activated at compilation time. This  option  can  be  used
                           multiple  times.  See also the -am and -ae options, they also apply to
                           -U and -u options and read below the Note concerning EA.

       Note concerning Extended Attributes (EA)

              Support for EA must be activated at compilation time (the configure script tries to
              do  so  if your system has all the required support for that). Thus you can get two
              binaries of dar (of the same version), one supporting EA and another which does not
              (dar  -V to see whether EA support is activated). The archives they produce are the
              same and can be read by each other. The only difference is that the binary  without
              EA  support  is not able to save or restore EAs, but is still able to test them and
              list their presence.

              In the following when we will speak about Extended Attribute (EA) or EA  entry,  we
              will  only  consider  a  particular  Extended  Attribute  key  and  its  value.  By
              opposition, the set of all EA associated to a file will be designated by "EA set".

              Since version 2.3.x the name of EA entries include the namespace for dar be able to
              consider  any type of EA (not only "system" and "user" as previously). Thus the two
              previous options -u and -U have changed and now take an argument which  is  a  mask
              applied  to  EA  entry  names  written  in  the following form namespace.name where
              "namespace" is for example "user". Note that the mask may or may  not  include  the
              dot  (.)  and  may  match arbitrary part of the EA namespace+name, just remind that
              masks will be applied to the "namespace.name" global string.

              the -am flag here also enables the  ordered  method,  for  EA  selection  too.  The
              ordered  versus normal method have been explained above in the file selection note,
              with some examples using -X and -I. Here this is the same with  -U  and  -u,  (just
              replace  -X  by -u and -I by -U and remember that the corresponding mask will apply
              to Extended Attribute selection in place of file selection).

              Another point, independently of the -am option  the  -ae  option  can  be  used  at
              restoration  time only. If set, when a file is about to be overwritten, all EA will
              be first erased before restoring those selected  for  restoration  in  the  archive
              (according to the -U and -u options given). If not set, the EA of the existing file
              will be overwritten, those extra EA that are not in the archive or are not selected
              for  restoration  in regard to the -u and -U options will be preserved. If you have
              not used any -u/-U option at backup  time  and  want  to  restore  from  a  set  of
              full/differential  backups the EA exactly as they were, you have to use -ae for dar
              removes the EA before overwriting their set of EA as stored in the archive. Without
              -ae  option dar will simply add EA to existing ones, thus get a different set of EA
              for a give file than those recorded at the time of the backup.

              Last point the -acase and -an options alters the case sensitivity of the  -U and -u
              masks  that  follow  them on the command-line/included files as they do for -I, -X,
              -P, -g, -[ and -] as well. Very last point ;-), if -ac option is used during backup
              dar  set back the atime after having read each file (see -aa/-ac options), this has
              as side effect to modify the ctime date of each file. But ctime change is  used  by
              dar  to detect EA changes. In brief, the next time you backup a file that had to be
              read (thus which contents changed), its EA will be  saved  even  if  they  had  not
              changed. To avoid this side effect, don't use the -ac option if not necessary.
       This ends the Extended Attribute selection explication let's continue with other options.

       -i, --input <path>  is  available  when reading from pipe (basename is "-" for -x, -l, -t,
                           -d or for -A when -c, -C or -+  is  used).  When  reading  from  pipe,
                           standard input is used, but with this option, the file <path> (usually
                           a named pipe) is used instead.  This option is to receive output  from
                           dar_slave program (see doc/usage_notes.html for examples of use). Note
                           that when --sequential-read is used, dar uses a single pipe  and  does
                           no  more  rely  on  dar_slave, -i option can be used to tell dar which
                           named pipe to read the archive from, instead of the standard input.

       -o, --output <path> is available when reading from pipe (basename is "-" for -x,  -l,  -t,
                           -d  or  for  -A  when  -c,  -C or -+ is used). When reading from pipe,
                           standard output is used to send request to dar_slave,  but  with  this
                           option,  the  file <path> (usually a named pipe) is used instead. When
                           standard output is used, all messages goes to standard error (not only
                           interactive messages). See doc/usage_notes.html for examples of use.

       -O, --comparison-field[=<flag>]
                           When  comparing  with  the  archive  of  reference  (-c  -A)  during a
                           differential backup, when extracting (-x) or when  comparing  (-d)  do
                           only consider certain fields. The available flags are:

                           ignore-owner   all  fields  are considered except ownership.   This is
                                          useful when dar is used by a  non-privileged  user.  It
                                          will  not consider a file has changed just because of a
                                          uid or gid mismatch and at  restoration  dar  will  not
                                          even try to set the file ownership.

                           mtime          only   inode   type   and  last  modification  date  is
                                          considered as well as inode  specific  attributes  like
                                          file  size  for  plain  files.  Ownership  is  ignored,
                                          permission is ignored. During comparison, difference on
                                          ownership  or  permission is ignored and at restoration
                                          time dar will not try to set the inode  permission  and
                                          ownership.

                           inode-type     Only   the   inode   type   is  considered.  Ownership,
                                          permission  and  dates  are  ignored.  Inode   specific
                                          attributes  are  still  considered  (like file size for
                                          plain files). Thus comparison will  ignore  differences
                                          for ownership, permission, and dates and at restoration
                                          dar will not try to set the ownership,  permission  and
                                          dates.

       When  no flag is provided to this option, -O option acts as if the "ignore-owner" flag was
       set, which is the behavior in older releases  (<  2.3.0).  Note  also  that  for  backward
       compatibility, --ignore-owner option still exists and since version 2.3.0 is just an alias
       to the --comparison-field=ignore-owner option. Of course if this option is not  used,  all
       fields are used for comparison or restoration.

       -H[num], --hour[=num]
                           if  -H  is  used, two dates are considered equal if they differ from a
                           integer number of hours, and that number is  less  than  or  equal  to
                           [num]. If not specified, num defaults to 1. This is used when making a
                           differential backup, to compare last_modification date of  inodes,  at
                           restoration  or  merging time if overwriting policy is based on file's
                           data or EA being more recent and last, when comparing an archive  with
                           a filesystem (-d option). This is to workaround some filesystems (like
                           Samba filesystem) that seems to change the dates of files after having
                           gone  from  or to daylight saving time (winter/summer time). Note that
                           -H option has influence on the overwriting policy (see -/ option) only
                           if it is found before on command-line or in an included file (using -B
                           option).

       -E, --execute <string>
                           the string is a user command-line to be launched between  slices.  For
                           reading (thus using -t, -d, -l or -x options), the command is executed
                           before the slice is read or even  asked,  for  writing  instead  (thus
                           using -c, -C or -+ option), the command is executed once the slice has
                           been completed. Some substitution string can be used in the string:

                           %%        will be replaced by %

                           %p        will be replaced by the slice path

                           %b        will be replaced by the slice basename

                           %n        will be replaced by the slice number (to  be  read  or  just
                                     written).  For  reading, dar often needs the last slice, but
                                     initially it does not know its number. If it cannot be found
                                     in  the  current  directory,  the  user command-line is then
                                     called with %n equal to 0.  This  is  a  convenient  way  to
                                     inform  the user command to provide the last slice. If after
                                     it is still not present, dar asks the user (as usually) with
                                     a message on the terminal. Once the last slice is found, the
                                     user command-line is called a second time, with %n equal  to
                                     the value of the last slice number.

                           %N        is  the  slice  number  with  the leading zero as defined by
                                     --min-digits option. If this  option  is  not  used,  %N  is
                                     equivalent to %n.

                           %e        will  be replaced by the slice extension (always substituted
                                     by "dar")

                           %c        will be replaced by the  context.  Actually  three  possible
                                     values  exist:  "init",  "operation"  and "last_slice". When
                                     reading an archive for (testing, extraction, diff,  listing,
                                     or  while reading the archive of reference, see below the -F
                                     option), the "init" context takes place from  the  beginning
                                     up  to  the  time  the catalogue is retrieved. On a multiple
                                     slice archive this correspond to the first slice request and
                                     to  the  last  slice  requests.  After, that point comes the
                                     "operation" context.  While creating an archive, the context
                                     is  always  "operation"  except when the last slice has been
                                     created, in which case the context is set to "last_slice".
       Several -E option can be given, given commands will then  be  called  in  the  order  they
       appear  on  the  command  line,  and  included  files.  See  also the environment variable
       DAR_DUC_PATH in the ENVIRONMENT section at the end of this document.

       -F, --ref-execute <string>
                           same as -E but is applied between slices of the reference archive  (-A
                           option). --execute-ref is a synonym.

       -K, --key [[<algo>]:]<string>
                           encrypt/decrypt  the archive using the <algo> cipher with the <string>
                           as pass phrase. An encrypted archive can only be read if the same pass
                           phrase is given. Available ciphers are "blowfish" (alias "bf"), "aes",
                           "twofish",  "serpent"  and  "camellia"  for  strong   encryption   and
                           "scrambling" (alias "scram") for a very weak encryption. By default if
                           no <algo> or no ':' is given, the blowfish cipher is assumed. If  your
                           password  contains  a column ':' you need to specify the cipher to use
                           (or at least use the initial ':' which is equivalent to 'bf:'). If the
                           <string>  is  empty  the  pass phrase will be asked at execution time.
                           Thus, the smallest argument that -K can receive  is  ':'  which  means
                           blowfish cipher with the pass phrase asked at execution time.

       The old "blowfish_weak" implementation has been removed and is no more supported.

       Note  that  giving  the passphrase as argument to -K (or -J see below) may let other users
       learn pass phrase (thanks to the ps, or top program for examples).  It  is  thus  wise  to
       either  use  an  empty pass which will make dar ask the pass phrase when needed, or use -K
       (or -J option) from an Dar Command File (see -B option), assuming it has the  appropriated
       permission  to avoid other users reading it. For those paranoids that are really concerned
       about security of their passwords, having a password read from a DCF is not  that  secure,
       because  while  the file gets parsed, dar makes use of "unsecured" memory (memory than can
       be swapped to disk under heavy memory load conditions). It is only when the passphrase has
       been  identified  that  locked memory is used to store the parsed passphrase. So, the most
       secure way to transmit a passphrase to dar, then to libdar, then to libgcrypt,  is  having
       dar  asking  passphrase  at  execution time, dar then makes use of secured (locked) memory
       from the time the password is received by dar from user (but through the operating system)
       up to its usage inside libgcrypt (after having been passed through libdar which also makes
       use of locked memory).

       -J, --ref-key [[<algo>]:]<string>
                           same as -K but the given  key  is  used  to  decrypt  the  archive  of
                           reference (given with -A option). --key-ref is a synonym.

       -#, --crypto-block <size>
                           to  be able to randomly access data in an archive, it is not encrypted
                           globally but block by block. You can define the encryption block  size
                           thanks to this argument which default to 10240 bytes. Note that syntax
                           used for -s option is also available here. Note also that crypto-block
                           is  stored  as a 32 bits integer thus value larger than 4GB will cause
                           an error. Note last, that the block size given here must  be  provided
                           when reading this resulting archive (through the -* or -# options). If
                           it is not the correct  one,  the  archive  will  not  be  possible  to
                           decrypt, it is thus safe to keep the default value (and not use at all
                           the -# option).

       -*, --ref-crypto-block <size>
                           same as --crypto-block but for the archive of reference (same  default
                           value). --crypto-block-ref is a synonym.

       -B, --batch <filename>
                           You  can  put  in  the  file any option or argument as used on command
                           line, that will be parsed  as  if  they  were  in  place  of  the  "-B
                           <filename>"  option.  This  way you can overcome the command line size
                           limitation. Commands in the file may be disposed on several lines, and
                           -B  option  can  also  be used inside files, leading a file to include
                           other files. But an error occurs in case  of  loop  (a  file  includes
                           itself)  and  DAR  aborts  immediately. Comments are allowed, and must
                           start by a hash `#' character on each line. Note that for a line to be
                           considered  as  comment the hash character must be the first character
                           of the line (space or tab can still precede the hash). See Conditional
                           Syntax  bellow for a more rich syntax in configuration files. See also
                           the environment variable DAR_DCF_PATH in the  ENVIRONMENT  section  at
                           the end of this document.

       -N, --noconf        Do  not  try  to  read  neither  ~/.darrc nor /etc/darrc configuration
                           files. See files section bellow.

       -e, --dry-run       Do not perform any action (backup, restoration or  merging),  displays
                           all  messages  as  if  it was for real ("dry run" action). The --empty
                           option is a synonym.

       -aSI, --alter=SI[-unit[s]]
                           when using k M G T E Z Y  prefixes  to  define  a  size,  use  the  SI
                           meaning: multiple of 10^3 (a Mega is 1,000,000).

       -abinary, --alter=binary[-unit[s]]
                           when using k M G T E Z Y prefixes to define a size, use the historical
                           computer science meaning: multiple of 2^10  (a Mega is 1,048,576).

       The --alter=SI and --alter=binary options can be used several times on the  command  line.
       They  affect  all  prefixes  which  follow,  even  those found in files included by the -B
       option, up to the next --alter=binary or --alter=SI occurrence. Note that  if  in  a  file
       included  by the -B option, an --alter=binary or --alter=SI is encountered, it affects all
       the following prefixes, even those outside the included files. For example,  when  running
       with  the  parameters  "-B  some.dcf -s 1K", 1K may be equal to 1000 or 1024, depending on
       --alter=binary or --alter=SI being present in the some.dcf file. By  default  (before  any
       --alter=SI/binary  option  is  reached),  binary  interpretation  of prefixes is done, for
       compatibility with older versions.

       -Q                  Do not display an initial warning on stderr when not launched  from  a
                           terminal  (when  launched from a cronjob for example). This means that
                           all questions to the user will be answered with 'no',  which  most  of
                           the  time  will abort the program. Please note that this option cannot
                           be used in a configuration file, it must be given on the command line.
                           Since   version  2.2.2,  giving  this  option  also  forces  the  non-
                           interactive mode, even if dar is launched from a terminal. This  makes
                           it  possible  for  dar  to  run  in  the background. When you do, it's
                           recommended to redirect stdout and/or sterr to files.

       -ac, --alter=ctime  When reading a filesystem (during a backup  or  comparison),  restores
                           the  atime  of all files to what it was before the file was read. This
                           makes it appear as if it had not been read at  all.  However,  because
                           there  is  no system call to let applications changing the ctime (last
                           inode change) of a file, setting back the atime results in  the  ctime
                           being  changed  (hence the alter=ctime). Some recent unix system allow
                           an application to get 'furtive  read  mode'  to  the  filesystem  (see
                           below).  On  older systems, however, for most users, having the atimes
                           of the files changed shouldn't be a problem, since they can be changed
                           by any other program (running by any user!) as well (like the content-
                           index program Beagle). Ctimes on the other hand, are the only way  for
                           security software to detect if files on your system have been replaced
                           (by so called root-kits mostly). This means, that should you  run  dar
                           with  -ac,  security  software  which  uses ctimes to check, will mark
                           every file on your system as compromised after the backup.  In  short,
                           this  means  this  option  should only be used by people who know what
                           they are doing. It's the opinion of  this  writer  that  any  software
                           susceptible  to atime changes is flakey or even broken (because of the
                           afore mentioned reasons why atimes can change). But, that doesn't take
                           away  that  there  are programs who rely on atimes remaining the same,
                           like Leafnode NNTP chaching software. Therefore this option exists.

       -aa, --alter=atime  When specifying -aa (by opposition to -ac), the atime  of  every  read
                           file  and  directory  is  updated,  and the ctime remains the same. In
                           other words, Dar itself does nothing with atimes and ctimes,  it  only
                           let the system do its job to update atimes when files are accessed for
                           reading. This is in accordance with what atimes and ctimes were  meant
                           to  represent.  This  is  Dar's  default (since version 2.4.0), unless
                           'furtive read mode' (see below) is supported by your  system  and  dar
                           has been compiled with this support activated.

       Furtive  read mode is a mode in which neither atime nor ctime are modified while dar reads
       each file and directory. This provides also better performances as nothing has to be wrote
       back  to  disk.  A  known  Unix kernel that supports this feature is Linux 2.6.8 and above
       (support must also be present in the standard C library of the system for dar to  be  able
       to activate this feature at compilation time).  When this feature is activated, it becomes
       the default behavior of dar for super user ; for  other  users  the  default  is  -aa.  If
       however  as  root  user,  you  do  not  want to use "furtive read mode" (while it has been
       activated at compilation time), you need to explicitly specify either -aa or -ac option.

       -am, --alter=mask   set the ordered mode for mask. This affects the way -I and -X  options
                           are  interpreted,  as  well  as  -g,  -P, -[ and -] options, -Z and -Y
                           options and -U and -u options. It can take any place on  the  command-
                           line  and  can  be  placed  only once. See the file selection in brief
                           paragraph above for a detailed explanation of this option. It has also
                           an  incidence  on  the --backup-hook-exclude and --backup-hook-include
                           options.

       -an, --alter=no-case
                           set the filters in case insensitive mode.  This  concerns  only  masks
                           specified  after  this  option  (see  also  -acase option below). This
                           changes the behavior of -I, -X, -g, -P, -Z, -Y, -u and -U options.

       -acase, --alter=case
                           set back to case sensitive mode for filters. All following  masks  are
                           case  sensitive,  up  to  end of parsing or up to the next -an option.
                           This changes the behavior of -I,  -X,  -g,  -P,  -Z,  -Y,  -u  and  -U
                           options.

       -ar, --alter=regex  set the filters to be interpreted as regular expressions (man regex(7)
                           ) instead of the default glob expression (man glob(7) ) This  modifies
                           the  -I,  -X,  -g, -P, -Z, -Y, -u and -U options that follows up to an
                           eventual -ag option (see just below). Note that  for  -P  option,  the
                           given  mask  matches  the  relative path part of the files path: Let's
                           take an example, assuming you  have  provided  /usr/local  to  the  -R
                           option,    the    mask    "^foo$"    will   replaced   internally   by
                           "^/usr/local/foo$" while the mask "foo$" will be  replaced  internally
                           by "^/usr/local/.*foo$".

       -ag, --alter=glob   This  option  returns  to glob expressions mode (which is the default)
                           after an -ar option has been used, this applies to any -I, -X, -g, -P,
                           -Z, -Y, -u and -U options that follow up to an eventual new -ar option
                           (see just above).

       -at, --alter=tape-marks
                           For archive creation and merging, the default behavior (since  release
                           2.4.0)  is  to add escape sequences (aka tape marks) followed by inode
                           information all along the archive. If -at is given, dar will  not  add
                           this  information  to  the  archive,  resulting  in a slightly smaller
                           archive and faster  backup.  When  reading  an  archive,  the  default
                           behavior  is  to  ignore these escape sequences and rather rely on the
                           catalogue located at the end of the archive. If instead  --sequential-
                           read  is  given  on command-line (see below), dar will avoid using the
                           catalogue at the end of the archive and  will  rely  on  these  escape
                           sequences  to  know  the contents of the archive, which will lead to a
                           sequential reading of the archive, operation suitable for tape  media.
                           Note  that it is not recommended to disable escape sequences (aka tape
                           marks) by using -at option except if you are  more  concerned  by  the
                           resulting  size  and  execution speed of your backup (in particular if
                           you have a lot of small files) than by the possibility to recover your
                           data  in  case  of  corrupted  or partially written archive.  Whithout
                           escape sequences, dar cannot sequential read an archive, which is  the
                           only  way  to  use an archive that has a corrupted catalogue or has no
                           catalogue at all, thing that happens if a system crash occurred during
                           the  archive  creation  or  due  to lack of disk space to complete the
                           archive.

       -0, --sequential-read
                           Change dar's  behavior  when  reading  an  archive.  By  default,  the
                           traditional  way  is  used, which relies on the table of contents (aka
                           "the  catalogue")  located  at  the  end  of  the  archive.  With  the
                           --sequential-read  option  instead,  dar will rely on escape sequences
                           that are inserted  all  along  the  archive  with  each  file's  inode
                           information.  This  will  lead to a sequential reading of the archive,
                           operation suitable for tape medium.  However,  this  feature  is  only
                           available  for  archive  format  starting  revision  "08" (i.e.: since
                           release 2.4.0) and if -at option  has  no  been  used  during  archive
                           creation  or  merging.  This  option  is available for archive testing
                           (-t), comparison (-d), restoration (-x), listing (-l) and to read  the
                           archive  of  reference (-A option) for isolation (-C) archive creation
                           (-c). The sequential reading of an archive is always much slower  than
                           the usual reading method, so you should not use this option unless you
                           really need it.

       -j, --jog           when virtual memory is exhausted, ask user to make room before  trying
                           to  continue.  By  default,  when memory is exhausted dar aborts. Note
                           that on several system, when memory is exhausted the kernel is  likely
                           to kill the process that failed to obtain virtual memory, thus on some
                           systems, dar may not be able to ask user for what to do when memory is
                           exhausted.

       -;, --min-digits <num>[,<num ref>[,<num aux>]]
                           By  default  slice number contained in filename do not have any padded
                           zeros, which, when sorting a directory contents  alphabetically  leads
                           to read all the slice starting by '1', then by '2'. for example, slice
                           1, 10, 11, 12, 13, ... 2, 20, 21, 23, ... etc. While dar is absolutely
                           not  perturbed  by  this display problem, some user shall like to have
                           the slices sorted by order. For that reason, the  --min-digits  option
                           lets you ask dar to prepend enough zeros in the slice number for it be
                           as wide as the argument passed to --min-digits. For  example,  if  you
                           provide  3  for  that  number, dar will store the slice number as 001,
                           002, 003, ... 999. Well, next slice will be 1000, thus it  will  break
                           again  the  alphabetical  sorting order. You are thus advised to use a
                           number large enough to convert the number of slice you expect to  use.
                           Then,  when  reading  your archive, you will also need to provide this
                           same argument, else dar will fail finding the slice. In  effect,  when
                           looking  for  slice  1  for  example,  dar should try opening the file
                           "basename.1.dar", but if it fails, it  should  try  opening  the  file
                           "basename.01.dar", then "basename.001.dar", ... up to infinity. If the
                           slice is just missing, dar would never ask you to  provide  it,  being
                           still  looking  for  a slice name with an additional leading zero. The
                           problem also arise when doing differential backup, merging  or  on-fly
                           isolation,  dar  must  know  the number of zero to prepend for each of
                           these archive. This is why the --min-digits option may receive  up  to
                           three integer values, the first for the archive to create or read, the
                           second for the archive of reference (-A option),  the  third  for  the
                           auxiliary  archive  of  reference (-@ option).  By default, no zero is
                           added, and it is also well working this way. But you  might  well  set
                           for  example "--min-digits 5,5,5" in your ($HOME)/.darrc file to do it
                           once and for all. Last important point, on command-line  (not  in  DCF
                           files), the short form of this option (-;) need to be quoted ('-;') to
                           avoid the shell interpreting the ';' character.

       --pipe-fd <num>     will read  further  arguments  from  the  file-descriptor  <num>.  The
                           arguments   read  through  this  file-descriptor  must  follow  a  TLV
                           (Type/Length/Value) list format. This option is not intended for human
                           use,  but  for  other  programs  launching  dar like dar_manager. This
                           feature has been added to overcome the command line length limit.

       SAVING, ISOLATION AND MERGING OPTIONS (to use with -c, -C or -+)

       -z[[algo:]level], --compression[=[algo][:][level]]
                           add compression within slices using gzip, bzip2 or lzo  algorithm  (if
                           -z  is  not  specified,  no compression is performed). The compression
                           level (an integer from 1 to 9) is optional, and is 9 by default, which
                           is  max  compression/slow  processing.  At  the opposite, 1 means less
                           compression and faster processing. "Algo" is  optional,  it  specifies
                           the  compression  algorithm  to  use and can take the following values
                           "gzip" "bzip2" or "lzo". "gzip" algorithm  is  used  by  default  (for
                           historical   reasons   see   --gzip  below).  If  both  algorithm  and
                           compression are given, a ':' must be placed between them. Valid  usage
                           of -z option is for example: -z, -z9, -zlzo, -zgzip, -zbzip2, -zlzo:6,
                           -zbzip2:2, -zgzip:1 and so on. Usage for  long  option  is  the  same:
                           --compression, --compression=9, --compression=lzo, --compression=gzip,
                           --compression=bzip2,    --compression=lzo:6,    --compression=bzip2:2,
                           --compression=gzip:1 and so on.

       --gzip[=level]      Same as -z (see just above). Historically -z/--gzip was for gzip while
                           -y/--bzip2 was for bzip2. But due to  the  lack  of  available  unused
                           letter  for  command  line options, lzo compression could not be added
                           without extending -z option grammar. For backward compatibility --gzip
                           is  kept,  but  is  deprecated.  Rather  use  --compression[=level] or
                           -z[level].

       -y[level], --bzip2[=level]
                           compresses using bzip2 algorithm. See -z above for usage details. This
                           option  is  DEPRECATED  and WILL DISAPPEAR in a future version. Please
                           use -zbzip2:level or --compression=bzip2:level.

       -s, --slice <number>
                           Size of the slices in bytes. If the number is appended by k (or K), M,
                           G,  T,  P  E,  Z  or Y the size is in kilobytes, megabytes, gigabytes,
                           terabytes, petabytes, exabytes, zettabytes or yottabytes respectively.
                           Example:  "20M"  means  20  megabytes,  by  default, it is the same as
                           giving 20971520 as argument (see also -aSI and -abinary  options).  If
                           -s  is  not  present  the  backup  will  be  written to a single slice
                           whatever the size of  the  backup  may  be  (there  is  probably  some
                           filesystem  limitation,  thus  you might expect problems for file size
                           over 2 gigabytes, depending on your filesystem,  but  this  is  not  a
                           limitation of dar).

       -S, --first-slice <number>
                           -S gives the size of the first slice which may be chosen independently
                           of the size of following slices. This option needs -s and by  default,
                           the  size  of  the first slice is the same as the one of the following
                           slices.

       -p [<integer>], --pause[=<integer>]
                           pauses before writing to a new slice (this requires  -s).  By  default
                           there is no pause, all slices are written in the same directory, up to
                           the end of the backup or until the filesystem is full. In  this  later
                           case, the user is informed of the lack of disk space and dar stops for
                           user action. As soon as some disk space is  available,  the  user  can
                           continue the backup. The optional integer that this option can receive
                           tells dar to only pause very 'n' slice. Giving 3 for 'n' will make dar
                           pause  only  after  slices  3,  6, 9 and so on. If this integer is not
                           specified, the behavior is as if '1' was given as argument which makes
                           dar pause after each slice.

       -A, --ref [<path>]/<basename>
                           Depending on the context, it specifies the archive to use as reference
                           (mandatory with -C and -+) or the rescue catalogue to use  (when  used
                           with  -x -t or -d). All slices of the reference backup are expected to
                           be on the same directory given by <path> or the current  directory  by
                           default.  Usually  only  the  last  slice  is  required to extract the
                           catalogue of reference. If necessary the use of symbolic links is also
                           possible  here  to  gather  slices  that  do  not  reside  in the same
                           directory. You can also point <path> to a floppy or any other  mounted
                           directory, because dar will pause and ask the user for required slices
                           if they are not present. The argument to -A may be of four types:

                           - An existing archive basename, which will be taken as reference

                           - a dash ("-") in direct access mode (default mode) it may  imply  the
                           use  of  -o and -i options, this allows the archive of reference to be
                           read from a pair of pipes with dar_slave at the other ends.  Dar_slave
                           can  be  run  through ssh on a remote host for example. Note that this
                           type of argument ("-") is not available when -A is used with -x, -d or
                           -t.  In  sequential  mode  (--sequential-mode is used), the archive of
                           reference is read from standard input or on named pipe specified by -i
                           option. -o option has no use in sequential mode. Note that merging (-+
                           option) cannot read archive of reference in sequential mode.

                           - a plus sign ("+") which makes the reference be the current directory
                           status  (only available with -c option). In other word, no file's data
                           will be saved, just the current status of the inodes will be  recorded
                           in  the  catalogue. This is like an extracted catalogue form a virtual
                           full backup, it can be taken for further reference without  having  to
                           make  the  full backup itself. This feature is known as the "snapshot"
                           backup.

                           - a <date>, if -af option has been placed before -A  on  the  command-
                           line  (or  in  a  included  file,  see -B option). For more about that
                           feature see -af option below.

                           During backup (-c option) the archive of  reference  given  thanks  to
                           this  option  is used to compare existing files on the filesystem. Dar
                           will then backup only files that have changed  since  the  archive  of
                           reference  was  done.  During merging (-+ option), the contents of the
                           given archive will  been  taken  with  the  contents  of  the  archive
                           specified  with  -@ option (see below). During Catalogue isolation (-C
                           option), dar will create the isolated catalogue  from  the  one  given
                           with  -A  option.  During  testing,  diff or extraction, (-t, -d or -x
                           options respectively), the table of contents (the catalogue)  will  be
                           read  from  the  archive  given  with -A instead of using the internal
                           catalogue of the archive (given with -t, -d or -x option). The archive
                           given  for  rescue  must  has  been previously isolated from this same
                           archive (else the contents will not  match  and  dar  will  refuse  to
                           proceed  to  this  operation).  This  gives  a solution to the case of
                           corruption inside an archive's catalogue, while the best way is  still
                           to use Parchive to protect your data against media error.

       -@, --aux [<path>]/<basename>, --on-fly-isolate [<path>]/<basename>
                           specifies  an  auxiliary archive of reference (merging context) or the
                           name of the on-fly isolated catalogue (creation context). This  option
                           is thus only available with -+ option (merging) and -c option (archive
                           creation). Over -A option which is mandatory with -+ option,  you  may
                           give  a  second  archive of reference thanks to the -@ option (merging
                           context). This allows you to merge two archives into a single one. See
                           also  -$,  -~ and -% for other options concerning auxiliary archive of
                           reference. While creating an archive (backup context) this option  let
                           the  user  specify the archive name for an on-fly isolation (former -G
                           option), you can also use -$  and  -~  to  define  encryption  of  the
                           archive  containing  the  on-fly  isolated  catalogue. On-fly isolated
                           catalogue is always bzip2 if possible else gzip  else  lzo  compressed
                           (using compression level 9) else not compressed, and it is also always
                           a single sliced archive. Due  to  command-line  exiguity,  it  is  not
                           possible  to  change  compression  algo  nor slice size for the on-fly
                           isolation. If you need a more complicated isolation, either look for a
                           GUI  over libdar, or do a normal (= not an on-fly) isolation operation
                           (By the way it is possible to isolate an already  isolated  catalogue,
                           this  is  equivalent  to  doing a copy, but you can change encryption,
                           compression or slicing, for example), you can also  use  dar_xform  if
                           you   only   want  to  change  slices  size  (this  is  faster  as  no
                           decompression/re-compression is done). Using the merging operation  on
                           an  isolated  catalogue  instead  of isolating the isolated catalogue,
                           leads the resulting archive to not be able to be used as a rescue  for
                           internal catalogue of the original archive. --aux-ref is a synonym.

       -D, --empty-dir     At  backup time, when excluding directories either explicitly using -P
                           or -] options, or implicitly by giving a -g or -[ options (a directory
                           is  excluded  if  it  does  not match mask given with -g options or -[
                           options) dar does not store anything about these. But with -D  option,
                           dar stores them as empty directories. This can be useful, if excluding
                           a mount point (like /proc or /dev/pts). At restoration time, dar  will
                           then  recreate  these  directories  (if necessary). This option has no
                           meaning with -C and is ignored in that case. Independently of that, -D
                           can  also  be  used  at  restoration time, but it activates a slightly
                           different feature (see restoration options below).

       -Z, --exclude-compression <mask>
                           Filenames covered by this mask are not compressed. It is  only  useful
                           with -z option. By default, all file are compressed (if compression is
                           used). This option can be used several times, in that case a file that
                           matches  one  of the -Z mask will not be compressed. Argument given to
                           -Z   must   not   be   include   any   path,   just    the    filename
                           (eventually/probably using wildcards).

       -Y, --include-compression <mask>
                           Filenames covered by this mask (and not covered by -Z) are the only to
                           be compressed. It is only available with -z  option.  By  default  all
                           files  are  compressed. This option can be used several times, in that
                           case all files that match one of the -Y will be compressed, if they do
                           not also match on of the -Z masks. The ordered method here applies too
                           when activated (with -am option), it works exactly the same as -I  and
                           -X  options,  but  apply  to  file compression, not file selection. In
                           other word, it matches only on the file  name,  not  on  the  path  of
                           files.

       -m, --mincompr <number>
                           files  which size is below this value will not be compressed. If -m is
                           not specified it is equivalent to giving -m 100 as  argument.  If  you
                           want to compress all file whatever their size is you thus need to type
                           -m 0 on the command line. The same number  extensions  as  those  used
                           with  -s  or -S are available here, if you want to specify the size in
                           kilobyte, megabyte, gigabyte etc.

       -1, --sparse-file-min-size <number>
                           Define the minimum length of zeroed bytes to replace  by  "holes".  By
                           default,  this  feature  is  activated  with  a  value of 15 bytes. To
                           completely disable it, set the size to zero.  Disabling  this  feature
                           will  bring  some  noticeable speed improvement but will probably make
                           the archive slightly bigger (depending on the  nature  of  the  data).
                           Sparse  files are files that contain so called holes. On a filesystem,
                           the portion of zeroed bytes is not stored on disk, thus  an  arbitrary
                           large  file with huge portion of zeros may only require a few bytes of
                           disk storage. While dar cannot detect how is allocated  a  given  file
                           because  it  makes  a  filesystem  abstraction  (it  does not know the
                           implementation  of  any  particular   filesystem,   where   from   its
                           portability),  however when it finds a sequence of zeroed bytes larger
                           than the given threshold it can assume that it is  in  presence  of  a
                           hole.  Doing  so,  it  does  not store the given zeroed bytes into the
                           archive, but place a tag beside the saved data to record the  size  of
                           the  hole and thus where to place the next no zeroed bytes. This makes
                           dar archive disk space requirement much smaller when a sparse files is
                           met.  At  restoration time, dar will restore holes writing normal data
                           and seeking over the hole to write down the  normal  data  after  each
                           hole.  If  the underlying file system supports sparse files, this will
                           restore the holes. Note that there is no difference  for  applications
                           whether  a  file  is sparse or not, thus dar may well transform normal
                           files into sparse files and viceversa, only the disk requirement  will
                           change.  Last  point,  if  dar can reduce disk requirement for archive
                           with holes as small as 15 bytes (smaller value works but the  overhead
                           cost  more  than what is required to store the zeroed bytes normally),
                           it may not be the same at restoration, because  filesystem  allocation
                           unit is usually several kilobytes, however restored file will never be
                           larger than it could be without  holes.  The  only  drawback  of  this
                           feature is the additional CPU cycle it requires.

       -ak, --alter=keep-compressed
                           During  merging  operation,  keep  files  compressed, this has several
                           restrictions : -z, -Z, -Y, -m are ignored, if two archives have to  be
                           merged,  both  must  use the same compression algorithm or one of them
                           must not use compression at all (this last restriction  will  probably
                           disappear  in  a  next  version).  The  advantage  of this option is a
                           greater speed of execution (compression is usually CPU intensive).

       -ah, --alter=holes-recheck
                           For merging, the  sparse  file  detection  mechanism  is  disabled  by
                           default.  However if you want to activate it (assuming you have an old
                           archive you want to convert the current archive format taking care  of
                           sparse  files),  you  need  to use -ah option to reactivate the sparse
                           file detection mechanism. Then for merging  --sparse-file-min-size can
                           be used as described above for archive creation. In particular setting
                           --sparse-file-min-size to zero beside -ah during merging, may also  be
                           used to convert file saved as sparse file into plain normal files.

       -af, --alter=fixed-date
                           Modify  the  -A  option  behavior,  making  it  receiving  a <date> as
                           argument in place of the  [<path>]/<basename>  default  argument.  The
                           <date>  is  used to define which file to save (file which modification
                           is newer or equal to <date>) and which to  consider  unchanged  (those
                           older  than  <date>).  This  option  has only a sense when creating an
                           archive (not when merging or isolating).

       <date> must be a date in the following possible formats:

       - a number of second since Jan 1st, 1970

       - a date in the following form [[[year/]month/]day-]hour:minute[:second]

       Here are some examples of date:
              91836383927108078

              2005/11/19-19:38:48 Which is 38 past 7 PM and 48 seconds, the 19th of November 2005

              20:20 Which is 8 PM of the current day

              2-00:08 Which is 8 past noon, the second day of the current month

              2/2-14:59 Which is 1 to 3 PM, the 2nd of February in the current year

       --nodump            do not save files which have the 'd' flag set (see chattr(1) lsattr(1)
                           ext2 commands). This option may not be available if the system dar has
                           been compiled on did not provide support for  ext2  flags.  Note  that
                           this  option does nothing with -+ option (merging) as no filesystem is
                           used for that operation.

       -M, --no-mount-points
                           stay in the same filesystem as the root  directory  (see  -R  option),
                           subdirectory  that  are mounting points for other filesystems will not
                           be saved (or saved empty if -D option is used). This option is useless
                           and ignored for merging operation.

       -, ,  --cache-directory-tagging
                           don't  save  contents  of  directories  that  use  the Cache Directory
                           Tagging  Standard.  See  http://www.brynosaurus.com/cachedir/spec.html
                           for details. (this option is useless with -+ option)

       -$, --aux-key [[<algo>]:]<string>
                           same as -J but for the auxiliary archive of reference (-@ option).

       -~, --aux-execute <string>
                           same as -F but for the auxiliary archive of reference (-@ option).

       -%, --aux-crypto-block <size>
                           same as -* but for the auxiliary archive of reference (-@ option).

       -/ , --overwriting-policy <policy>
                           This option let the user define when or how file overwriting can occur
                           at restoration or archive merging time. It  does  no  apply  to  slice
                           overwriting  which  are driven by the -n option, it does instead apply
                           to file during extraction and files inside archives when  merging  two
                           of them. When considering overwriting, a file is said to be 'in place'
                           while an other is known as 'new' or  'to  be  added'.  At  restoration
                           time,  the  'in  place' is the one that is present in filesystem while
                           the 'to be added' is the one from the archive. At  merging  time,  the
                           'in  place'  is the one of the '-A' archive of reference while the 'to
                           be added' is the one from the auxiliary '-@' archive or reference.

       As soon as you use -/ option -n only applies only to slice overwriting and the -r, -k  and
       -ae options are ignored (restoration options).

       The  given  <policy>  argument  is  composed  of  actions  and  eventually  of conditional
       expressions. Actions do define how to solve overwriting conflict  about  file's  data  and
       file's  EA. An action is thus a couple of action for Data and for EA. Actions for Data are
       represented by uppercase letters, while action for EA are defined  by  lowercase  letters.
       Both actions are independent of each other:

              P    means 'Preserve'. When merging two archives, the data of the resulting archive
                   will be taken from the 'in place' file. While when extracting, the data of the
                   inode  in filesystem will be preserved (thus no overwriting will occur for the
                   data).

              O    means 'Overwrite'. When merging  two  archives,  the  data  of  the  resulting
                   archive  will be taken from the 'to be added' file. While when extracting, the
                   data of the inode in filesystem will be overwritten by data from the archive.

              S    means 'mark Saved and preserve'. When merging two archives, the  data  of  the
                   resulting  archive will be marked as already saved in the archive of reference
                   (making thus a differential archive, even if none of the original archive were
                   differential archives). All data will be dropped in the resulting archive, but
                   the last modification date [aka mtime] (used to detect change in file's  data)
                   will  be  taken  from  the  'in  place'  file. This action does not apply when
                   extracting files, it is thus  considered  equal  to  "Preserve"  (P)  in  that
                   situation.

              T    means  'mark  Saved and overwrite'. When merging two archives, the data of the
                   resulting archive will be marked as already saved (same as  'S'  action):  all
                   data  will  be dropped in the resulting archive, however the last modification
                   date [aka mtime] (used to detect changes in a file's data) will be taken  from
                   the  'to  be added' file. This action does not apply when extracting files, it
                   is thus considered equal to "Overwrite" (O) in that situation.

              R    means 'Remove'. When merging two archives,  the  resulting  archive  will  not
                   contain  any  entry corresponding to the file that were in conflict. This also
                   implies that no EA will be stored for that particular entry as the entry  will
                   no  more exist in the resulting archive (as if it had never yet existed). When
                   extracting files, this will lead to file's suppression.

              p    means 'Preserve', same as 'P' (but lowercase letter)  preserve  the  whole  EA
                   set.  When  merging two archives, the EA set of the resulting file will be the
                   EAs of the 'in place' file (whatever is the overwriting action taken  for  its
                   data).  While  when  extracting  files  to  filesystem,  the EA of the file in
                   filesystem will not be changed (whatever is the overwriting action  taken  for
                   its data, unless the file is removed using the 'R' policy).

              o    means  'Overwrite',  same as 'O' (but lowercase letter) overwrite the whole EA
                   set. When merging two archives, the EA set of the resulting file will be taken
                   from  the  'to  be added' file. While when extracting files, the EA set of the
                   file in the filesystem will have its EA erased and replaced by  those  of  the
                   file in the archive (still independent of what overwriting action is taken for
                   file's data).

              s    means 'mark Saved and preserve', same as 'S' (but  lowercase  letter)  for  EA
                   instead  of  data. When merging two archives, the EA of the resulting file are
                   marked as already saved in the archive of reference, thus they are dropped but
                   the  date  of  last inode change [aka ctime] (used to detect changes in file's
                   EA) will be taken from the 'in place' file. This action does  not  apply  when
                   extracting  files,  it is thus considered equivalent to "Preserve" (p) in that
                   situation.

              t    means 'mark Saved and overwrite', same as 'T' (but lowercase  letter)  for  EA
                   instead  of  data. When merging two archives, the EA of the resulting file are
                   marked as already saved in the archive of reference, thus they are dropped but
                   the date of last inode change [aka ctime] (use to track changes in EA) will be
                   taken from the 'to be added' file. This action does not apply when  extracting
                   files,  it  is  thus  considered  an  equivalent  to  "Overwrite"  (o) in that
                   situation.

              m    means 'merge EA and preserve'. The resulting file in the merged  archive  will
                   have  EA entries from both the 'in place' and the 'to be added' files. If both
                   files share a same EA entry (same key for a given association) the one of  the
                   'in  place' file is kept (where from the 'preserve' notion). When extracting a
                   file, the file in the filesystem will have its EA set enriched by  EA  entries
                   of  the  file  in the archive that do not exist on filesystem, but its already
                   existing EA will stay untouched.

              n    means 'merge EA and overwrite'. The resulting file in the merged archive  will
                   have  EA entries from both the 'in place' and the 'to be added' files. If both
                   files share a same EA entry (same key for a given association) the one of  the
                   'to  be  added'  file  will  be kept (where from the 'overwrite' notion). When
                   extracting file, the file in the filesystem will have its EA set  enriched  by
                   EA  entries  of  the  file  in  the  archive  with some EA entry possibly been
                   overwritten.

              r    means 'remove', same as 'R' but for the EA set (thus  all  EA  entries)  of  a
                   given  file  ('r' is lowercase letter here). The file of the resulting archive
                   during merging operation will not own any EA, even if the  'in  place'  and/or
                   the  'to  be  added' files did have some. For file extraction, this means that
                   the file in the filesystem will loose all its EA set. As for all the  previous
                   tests,  this  EA  operation  is independent of the operation chosen for file's
                   data (uppercase letters).

              d    means 'delete'. When a same EA entry is found both in the 'in place'  and  'to
                   be  added'  files  these  entries  will be absent in the resulting archive. In
                   other words, when merging, the EA set will only contain EA entries specific to
                   the 'in place' and those specific to the 'to be added' file. Entries in common
                   will not be present. When extracting a file  from  an  archive,  the  file  on
                   filesystem  will have its EA set enriched by entries of the 'to be added' file
                   that are new to the 'in place' file. The other entries (which are thus present
                   in both archive and filesystem) will be removed from the EA set.

              *    is  valid for both EA and data. It tells that the action is not yet defined at
                   this step of the evaluation and that further evaluation is required  (see  the
                   'chain' operator below).

              A    means   'Ask   for   user  decision'.  This  uppercase  letter  concerns  Data
                   overwriting. An application interaction let the user  define  the  action  for
                   each  file  in  conflict. Note, that this action if used alone may become very
                   boring or painful. The idea is to use it in conditional statements (which  are
                   described below) to have dar ask for only non obvious cases.

              a    means  'Ask for user decision'. This lowercase letter is the equivalent for EA
                   of the 'A' action.  It  is  intended  to  be  used  in  the  same  conditional
                   statements described below.

              An  action is thus a couple of letters, the first being uppercase (for file's data)
              the second being lowercase (for file's EA). When -/ option is not given, the action
              is equivalent to '-/ Oo', making dar proceed to file and EA overwriting. This is to
              stay as close as possible to the former default action  where  neither  -n  nor  -w
              where  specified.  Note  that  -w  option stays untouched, in consequences, in this
              default condition for -/ option, a confirmation will be asked to  the  user  before
              dar  proceed  to  any overwriting. The former -n option (still used to handle slice
              overwriting) can  be  replaced  by  its  equivalent  '-/  Pp'  for  resolving  file
              overwriting  conflict (never overwrite). Here follows some examples of actions, all
              these are done for any entry found in conflict during archive  merging  or  archive
              extraction, we will see further how to define conditional actions.

              -/ Rr
                   will  result  lead  dar  to  remove  any file from filesystem that ought to be
                   restored(!). Note the action for EA is useless, the EA will always  be  erased
                   as well as data using 'R'. Thus '-/ Rp' would lead to the same result.

              -/ Po
                   will keep data of the 'in place' file and EA set from the 'to be added' file.

              -/ Ss
                   Using this option when merging an archive with itself (used both as archive of
                   reference (-A option) and auxiliary archive of reference (-@  option)  )  will
                   provide  the  same action as an archive isolation of the archive of reference,
                   but using twice more memory (so keep using the isolation operation as  before!
                   Here this is just an illustration of the possibility)

              As  seem  previously  -u  and  -U  options  can be used to filter which EA entry to
              consider and which to ignore. The question here is to explain  how  this  filtering
              mechanism  interacts with the different policies we just presented above. For files
              that are not in conflict (found only as 'in place' or as 'to be added'),  only  the
              EA  entries matching the EA filter are kept. For files in conflict, the overwriting
              policy is evaluated first, then the filtering mechanism is applied *after* it. Thus
              for example, using the following [ -/ "Po" -u "*test" ], when merging two archives,
              only EA ending with "test" will be retained, and when a conflict takes place,  this
              "*test"  ending  EA  will be taken from the 'to be added' file if it has some EA of
              that type, its other EA entry will be ignored as well as any EA entry  of  the  'in
              place'  file even those ending by "test". At restoration in using the same options,
              file without conflict will get restored but only EA entry ending with  "test"  will
              be  restored, and for file with conflict (already present in filesystem), EA set of
              file in filesystem will be removed and replaced the  EA  entries  of  the  file  in
              archive that ends by "test", if some exist.

              Well,  now let's see how to bring some more fun using conditional statements in all
              these actions. The structure to use is the following:

              {<condition>}[<action to follow if condition is true>]
                   This syntax let you place an action (as the ones we saw just above) inside the
                   brackets  '['  and  ']'  (for  example [Pp]) that will take effect only if the
                   evaluation of the <condition> is true.  Stated that a such statement is a  new
                   type  of  action,  you  may  have  guessed  that  you  may use it recursively:
                   {<condition1>}[{<condition2>}[<action>]).  Well so far it seems  useless.  But
                   instead of the "if <condition> then <action> else <action>" paradigm common to
                   programming languages, due to the command line context it has been  chosen  to
                   instead  use and implicit "OR" operator between actions.  Thus you can "stack"
                   conditional      statements      this      way:      {<condition1>}[<action1>]
                   {<condition2>}[<action2>]  <action3>. In this example, if <condition1> is true
                   then <action1> will be used, ELSE if <condition2> is true then <action2>  will
                   be  used ELSE <action3> will be used.  This leads to the same possibilities as
                   what is available with programming languages, but with a slightly more  simple
                   syntax.  Seen  this,  the recursion of conditional syntax is more interesting.
                   For readability, you are allowed to add any space or tab  in  the  overwriting
                   policy,  but  the  resulting  overwriting  policy  must  be  given as a single
                   argument to dar, thus the use of quotes (either  simple  '  or  double  ")  is
                   necessary.

              The  last  operator  we  will  see  is  the 'chain' operator. Once an expression is
              evaluated, the resulting couple of action may contain an '*' (undefined action  for
              EA  or  data).  Further  evaluation  must  be  done.  The  chain  operator which is
              represented  by  a  semi-column  ';'  let  one  to  separate  several   independent
              expressions  that  will be evaluated in turn up to the time the couple of action is
              fully defined. Once an action (for EA or for Data) is defined, it can be  redefined
              by a subsequent evaluation in the chain, however if the action is defined it cannot
              be set back to undefined, thus  '*'  will  never  overwrite  a  previously  defined
              action.  If at the end of the policy the couple of action is not fully defined, the
              'preserve' action is used ('P' or 'p' depending on which of  EA  or  Data  is  left
              undefined). Here follow a example of syntax:

              -/ "{<condition1>}[P*] O* ; {<condition2>[*p] *o} ; Rr"
                   The  first  expression  will evaluate to either P* or O*. At this step, as the
                   action is not completely defined, the second part of the chain  is  evaluated,
                   It  will  end  with  either  *p  or *o. In any case, we have after this second
                   statement of the chain a fully defined action for both data and EA (either Pp,
                   Po,  Op  or Oo). Thus the evaluation stops here and the "Rr" policy will never
                   be evaluated.

              We now have one last thing to see: the available conditions (what to place  between
              braces  '{'  and '}'). Conditions are defined each by a letter, eventually followed
              by an argument between parenthesis. The  usual  logical  operators  are  available:
              negation  (!), conjunction (&) disjunction (|). These characters must be escaped or
              quoted to not be interpreted by the shell when used on command-line. In  particular
              the  '!'  under most shell must be quoted and escaped (-/ '{\!R}[..]..', The escape
              character '\' is not necessary inside DCF files (those given to -B  option)  as  no
              shell  is  used to interpret these files. To these usual operators has been added a
              new one: the "inversion" operator, noted '~'. Like the negation,  it  is  an  unary
              operator  but  unlike  the negation, it inverses the roles of 'in place' and 'to be
              added' for the evaluation, which is slightly different from taking the negation  of
              the  result  of  the  evaluation.  All these operators follow the usual precedence:
              unary operators ('!' and '~') are evaluated first, then the  conjunction  '&'  then
              the  disjunction  '|'. To override this, you can use parenthesis '(' and ')' inside
              the condition. Over these logical operators, the conditions  are  based  on  atomic
              operator  that  compare  the  'in  place' file to the 'to be added' file. Here they
              follow:

              I    true only if the 'in place' entry is an inode (a 'detruit'  which  record  the
                   fact  that  a  file  has been removed since the archive of reference is not an
                   inode for example). This condition do not have any consideration toward the to
                   be added object, as some others but not all below.

              D    true  only  if the 'in place' entry is a directory. To know whether the 'to be
                   added' is a directory or not, one would use the "inversion" operator: ~D

              F    true only if the 'in place' entry is a plain file (true  also  if  this  plain
                   file  is  a 'hard link', that's it if its inode is linked several times to the
                   directory tree)

              H    true only if the 'in place' entry is an inode  linked  several  times  to  the
                   directory  tree  (=  hard link) it may be a plain file, a Unix socket, a pipe,
                   char device, a block device for example.

              A    same as H but the current 'in place' entry is the first link we meet  pointing
                   to that hard linked inode.

              R    true if the 'in place' entry is more recent than or of same date as the 'to be
                   added' entry. The  last  modification  date  [aka  mtime]  is  used  for  this
                   comparison.  If  the  'to  be  added'  entry  is not an inode (and thus has no
                   mtime), the 'in place' is considered to be more recent than the 'to be  added'
                   entry.  Same  thing  if  the 'in place' entry is not an inode (ad has no mtime
                   available for comparison), it is here too assumed to be more recent.

              R(<date>)
                   true if the 'in place' entry is more recent than or of the same  date  as  the
                   fixed  <date>  given  in  argument. No consideration is done toward the 'to be
                   added' element. The <date> format is the same as the one used with -af option.
                   If  an  entry  has  no mtime (it is not an inode for example) it is assumed an
                   virtual mtime of zero.

              B    true only if both 'in place' and 'to be added' are plain file (hard linked  or
                   not) and if the 'in place' file's data is larger or equal to the 'to be added'
                   file's data. If one or both entry are not plain files (or hard link  to  plain
                   file)  and thus the file size comparison is not possible, the 'in place' entry
                   is assumed to be 'bigger' than the 'to be added' entry.

              S    true only if the 'in place' data is  saved  in  the  archive  (not  marked  as
                   unchanged  since  the  archive of reference). Note that while extracting files
                   from an archive, the 'in place' file is  the  one  in  the  filesystem,  which
                   always  has  its  data 'saved' (from libdar point of view). The 'inversion' of
                   this  atomic  operator  ~S  may  still  be  interesting  in  the  context   of
                   restoration.

              Y    true  only  if  the  'in place' data is saved but dirty (plain file having its
                   data changed at the time it was read for  backup).  Note,  that  restoring  in
                   sequential  read mode, it is not possible to known whether a file is dirty (it
                   is possible to know it once having read its data, but sequential reading  does
                   not  allows  then  to skip forward to get the dirty state of the file and skip
                   backward to eventually restore that file, depending on the overwriting  policy
                   result).

              X    true only if the 'in place' data is a sparse file

              T    true  only if the 'in place' and 'to be added' entries are of same type (plain
                   file, Unix socket, named pipe, block device, char device, symlink,  directory,
                   'detruit'  (which  stands  for file deleted since the archive of reference was
                   done), and so on). Note that the number of links to inode (i.e.  whether  this
                   is a hard links or not) is not taken into account.

              e    true  if  the  'in  place' entry has EA (may they be saved or just recorded as
                   existing).

              r    true if the 'in place' entry has more recent or equal dated EA to the  'to  be
                   added'  entry.  If  'to  be  added' has no EA or is even not an inode, true is
                   returned. If 'in place' has no EA or is even not an inode,  true  is  returned
                   unless 'to be added' has some EA. The comparison is done on ctime dates.

              r(<date>)
                   true  if  the  'in place' entry has more recent or equal dated EA to the fixed
                   <date> given in argument. No consideration is done toward the  'to  be  added'
                   element.  The <date> format is the same as the one used with -af option. If an
                   entry has no date (ctime date) (when it is not an inode  for  example)  it  is
                   assumed an virtual ctime of value zero.

              m    true  only if 'in place' has more or equal number of EA entry in its set of EA
                   than 'to be added' has. If an entry has not EA or is not even an inode, it  is
                   assumed  it  has  zero entry. The comparison is done on this number. Note that
                   the number of EA entry is not the  size  used  to  store  these  entries.  For
                   example,  the EA entry "user.test" counts for 1, whatever is the length of the
                   value associated to it.

              b    true if the 'in place' entry has bigger EA set or equal size EA set  than  the
                   'to  be  added'  entry.  If  an entry has no EA or is even not an inode, it is
                   assumed that it has a zero byte length EA set. The comparison is done on  this
                   number  in  that  case.  Note that the comparison is done on the bytes used to
                   store the whole EA set associated to a given file.

              s    true if the 'in place' entry is an inode (or a hard linked inode) and has  its
                   EA  saved  in  the archive of reference, not only marked present but unchanged
                   since last backup. This test does not  take  the  'to  be  added'  entry  into
                   account.

              Well,  you've  seen  that uppercase letter are kept when comparison is based on the
              inode or data while lowercase letter is used for atomics based on EA. Now  that  we
              have completed our tour of this feature let's see some examples:

              -/ Pp
                   as  seen  previously this is what does -n option for files when no overwriting
                   policy is defined, which avoids any overwriting for Data as well as for EA.

              -/ "{!T}[Pp] {R}[{r}[Pp]Po] {r}[Op] Oo"
                   Space and tabs are allowed to ease readability. Here the policy stands for: If
                   files in conflicts are not of the same type then keep Data and EA of the entry
                   'in place'. Else if 'in place' has a more recent data then if 'in  place'  has
                   more  recent  EA  then  keep both its Data and EA, else keep only its Data and
                   overwrite its EA. Else (if 'in place' has not the more recent data), if it has
                   the  more  recent  EA  then overwrite the data but keep its EA, else overwrite
                   both its data and EA.  This policy tends to preserve the most recent  data  or
                   EA,  but it does not take into account the fact that EA or Data is effectively
                   saved into the archive of just  marked  as  unchanged  since  the  archive  of
                   reference.

              -/ "{!T}[{~D}[Oo] Pp]"
                   If entries are not of the same type, if the 'to be added' entry is a directory
                   then we keep it and overwrite the 'in place'  entry,  else  we  keep  the  'in
                   place'  entry.  If  entry  are  of  same type, the policy does not provide any
                   action, thus the default action is used: "Pp". You  can  change  this  default
                   action easily using a chain operator:

              -/ "{!T}[{~D}[Oo] Pp] ; Aa"
                   In  this  case  instead, if entry are of the same type, the user will be asked
                   what to.

              -/  "{!T|!I}[{R}[Pp]  Oo]  {S}[{~S}[{R}[P*]  O*]  P*]  {~S}[O*]   {R}[P*]   O*]   ;
              {s}[{~s}[{r}[*p] *o] *p] {~s}[*o] {r}[*p] *o]"
                   Well  this  may  seems a bit too complex but just see it as an illustration of
                   what is possible to do: If both 'in place' and 'to be added' are  not  of  the
                   same  type  we  keep  data  and  EA of the most recent file (last modification
                   date). Else, both are of the same type. If both are inode we  evaluate  a  two
                   expressions chain (expressions are separated by a semi-column ';') we will see
                   in detail further. Else if they are of same type but are not inode we take the
                   EA  and  data  of  the  most  recent  entry  (this is the last 10 chars of the
                   string). Well, now let's see the case of inode: The first  expression  in  the
                   chain sets the action for data and keep the action for EA undefined. While the
                   seconds, is the exact equivalent but instead it leaves  the  action  for  data
                   undefined '*' and set the action for EA. These two expressions follow the same
                   principle: If both entries are saved (by opposition to be marked as  unchanged
                   since  the  archive  of reference) in the archives, the most recent EA/Data is
                   kept, else, the one of the inode that is saved is kept, but if none  is  saved
                   in the archive the most recent entry (mtime/ctime) is kept.

       -^, --slice-mode perm[:user[:group]]
                           defines  the  permission  and  ownership to use for created slices. By
                           default, dar creates slices with read and write available  for  anyone
                           letting the umask variable disable some privileges according to user's
                           preferences. If you need some more  restricted  permissions,  you  can
                           provide  the  permission as an octal value (thus beginning by a zero),
                           like 0600 to only grant read and write access to the user. Be  careful
                           not to avoid dar writing to its own slices, if for example you provide
                           permission such as 0400. Note also that the umask  is  always  applied
                           thus  specifying  -^  0777  will not grant word wide read-write access
                           unless your umask is 0000.

       -_, --retry-on-change count[:max-byte]
                           When a file has changed at the time it was read for  backup,  you  can
                           ask  dar  to  retry saving it again. To activate this feature you must
                           provide the maximum number a given file can be re-saved (this  is  the
                           'count' field).In option the overall maximum amount of byte allowed to
                           be wasted due to retrying changing file's backup can be given after  a
                           column  charactrer  (:),  this is the 'max-byte' field. By default (no
                           --retry-on-change option specified) no retry is  done.  If  'max-byte'
                           field  is not specified, no limit on the  bytes is used, each changing
                           file will be saved up  to  'count'  times  if  necessary.  A  file  is
                           considered  as  changed  when  the  last modification time has changed
                           between the time the file has been opened for backup and the  time  it
                           has been completely read. Retrying a backup cannot replace the already
                           saved backup, a second copy of the file is added just after the  first
                           previous  try  and  the  previous try becomes inaccessible, however it
                           holds some place in the archive, where from the designation of  wasted
                           bytes.  You  can  remove  all  wasted  bytes from an archive using the
                           merging/fitering feature: dar -+ new_arch -A old_arch -ak

       -ad, --alter=decremental
                           This flag is to be used only when merging two archives. Instead of the
                           usual  merging  where  each  files  of  both archives are added to the
                           resulting archive with eventually a tie using the  overwriting  policy
                           (see  -/ option), here the merging builds an archive which corresponds
                           to the decremental backup done based  on  two  full  backups.  the  -A
                           backup  is  expected  to  receive  the  older  archive while the -@ is
                           expected to point to the more recent one. If this option is used,  the
                           eventually   overwriting   policy   is  ignored  and  replaced  by  -/
                           "{T&R&~R&(A|!H)}[S*]    P*    ;    {(e&~e&r&~r)|(!e&!~e)}[*s]     *p".
                           Additionally, files found int the newer archive that do not existed in
                           the older are replaced by a 'detruit' entry, which marks  them  to  be
                           remove  at  restoration  time.  For more information about decremental
                           backups read the usage_notes.html file in the documentation.

       -asecu, --alter=secu
                           This option  disable  the  ctime  check  done  by  default  during  an
                           incremental  backup:  If  the  ctime of an inode has changed since the
                           archive of reference was done with all other  values  being  unchanged
                           (inode  type,  ownership,  permission,  last  modification  date, file
                           size), dar issues a "SECURITY WARNING", as this may be the sign of the
                           presence of a rootkit. You should use this option to disable this type
                           of warning, if you are doing a differential backup of a just  restored
                           data  (differential backup with the archive used for restoration taken
                           as reference), as it is not possible to restore ctime, restored data's
                           ctime  will  have changed while other parameters will be unchanged for
                           all restored files, leading dar to issue a warning  for  all  restored
                           files. This security check is disabled (implicitly) if dar is run with
                           -ac option. Last, if a file has only its EA changed since the  archive
                           of   reference  was  done,  the  security  warning  will  show  (false
                           positive).

       -., --user-comment "<message>"
                           This option let the user add an arbitrary  message  into  the  archive
                           header.  Warning! this message is always stored in clear text, even if
                           the archive is encrypted. You can  see  the  message  inserted  in  an
                           archive  displaying  the  archive  summary (dar -l <archive> -q). Some
                           macro can be used inside the <message>:

                           %c   is replaced by the command line used. Note that for security, any
                                option  related to archive encryption is removed (-K, -J, -$, -#,
                                -*, -%). The command included from a DCF file (see -B option) are
                                never  added  by this macro. As a consequence, if you do not want
                                to see --user-comment stored in user comments  you  can  add  the
                                --user-comment  definition  in an included file like ~/.darrc for
                                example.

                           %d   this is the current date and time

                           %u   this is the uid under which dar has been run

                           %g   this is the gid under which dar has been run

                           %h   the hostname on which the archive has been created

                           %%   the % character.

       -3, --hash <algo>   When creating, isolating or merging an archive, beside each  slice  is
                           generated an on-fly hash file using the specified algorithm. Available
                           algorithm are "md5" and "sha1", by default no hash file is  generated.
                           The  hash  file generated is named based on the name of the slice with
                           the .md5 or .sha1 extension added to it at the end. These  hash  files
                           can be processes by md5sum and sha1sum usual commands (md5sum -c <hash
                           file>) to verify that the slice has not been corrupted. Note that  the
                           result  is  different  than  generating  the hash file using md5sum or
                           sha1sum once the slice is created,  in  particular  if  the  media  is
                           faulty:  calling  md5sum or sha1sum on the written slice will make you
                           compute the hash  result  on  an  already  corrupted  file,  thus  the
                           corruption  will not be seen when testing the file against the hash at
                           a later time. Note also that the  creation  of  a  hash  file  is  not
                           available when producing the archive on a pipe ("dar -c -").

       -<, --backup-hook-include <mask>
                           The  mask is applied to path+filename during backup operation only. If
                           a given file matches the mask, a user command (see  -=  option  below)
                           will  be  run before proceeding to the backup and once the backup will
                           be completed. See also -> option below. IMPORTANT: if using the  short
                           option,  you need to enclose it between quotes: '-<' for the shell not
                           to interpret the < as a redirection.

       -> --backup-hook-exclude <mask>
                           The mask is applied to path+filename during backup operation only.  If
                           a  given  file matches the mask, even if it matches a mask given after
                           -< option, no user command will  be  executed  before  and  after  its
                           backup.  The  -<  and  -> options act like -g and -P, they can receive
                           wildcard expression and thus have  their  comportment  driven  by  the
                           --alter=globe and --alter=regex expressions seen above, as well as the
                           --alter=mask option. Last the --alter=case and --alter=no-case  modify
                           also  the  way  case  sensitivity  is  considered  for these masks. By
                           default, no -> or -< option, no file get  selected  for  backup  hook.
                           IMPORTANT:  if  using the short option, you need to enclose it between
                           quotes: '->' for the shell not to interpret the > as a redirection.

       -=, --backup-hook-execute <string>
                           for files covered by the  mask  provided  thanks  to  the  -<  and  ->
                           options,  the given string is executed by a shell before the backup of
                           that file starts and once it has completed. Several macro can be  used
                           that are substituted at run time:

                           %%        will be replaced by a literal %

                           %p        will be replaced by the full path under backup

                           %f        will be replaced by the filename (without the path)

                           %u        will be replaced by the UID of the file

                           %g        will be replaced by the GID of the file

                           %c        and  most  interesting, %c (c for context), will be replaced
                                     by "start" or by "end" when the command is  executed  before
                                     or after the backup respectively.
       This way, one can stop a database just before it was about to be backed up, and restart it
       once the backup is completed. Note that the masks seen above that drive the  execution  of
       this  command  can be applied to a directory or a plain file for example. When a directory
       is selected for this feature, the command is  logically  ran  before  starting  (with  the
       context  "start") to backup any file located in that directory or in a subdirectory of it,
       and once all file in that directory or subdirectories have been saved, the command is  ran
       a second time (with the context "end"). During that time, if any file do match the backup-
       hook masks, no command will be executed for these. It is assumed that when a directory has
       been  asked  for  a  backup-hook to be executed this hook (or user command) is prepare for
       backup all data located in that directory.  The  environment  variable  DAR_DUC_PATH  also
       applies to these user commands (see -E above, or the ENVIRONMENT paragraph below).

       -ai, --alter=ignore-unknown-inode-type
                           When dar meets an inode type it is not aware about (some times ago, it
                           was the case for Door inode on Solaris for example,  Door  inodes  are
                           handled  by  dar  since  release 2.4.0), it issues a warning about its
                           inability to handle such inode. This warning occurs even if that entry
                           is  filtered  out by mean of -X, -I, -P, -g, -[ or -] options, as soon
                           as some other entry in that same directory has to  be  considered  for
                           backup,  leading  dar  to  read that directory contents and failing on
                           that unknown inode type (filtering is done  based  on  the  result  of
                           directory  listing).  This option is to avoid dar issuing such warning
                           in that situation.

       RESTORATION OPTIONS (to use with -x)

       -k[{ignored|only}], --deleted[={ignore|only}]
                           Without argument or with the "ignore" argument, this option leads  dar
                           at  restoration  time to not delete files that have been deleted since
                           the backup  of  reference  (file  overwriting  can  still  occur).  By
                           default,  files that have been destroyed since the backup of reference
                           are deleted  during  restoration,  but  a  warning  is  issued  before
                           proceeding,  except  if  -w  is  used.  If -n is used, no file will be
                           deleted (nor overwritten), thus -k is useless when  using  -n.  If  -/
                           option  is  used,  this  option  without argument is ignored! With the
                           "only" argument, this option only  consider  files  marked  as  to  be
                           removed  in the archive to restore, no file are restored but some file
                           are removed. When -konly (or --deleted=only) is used, the -/ option is
                           ignored (at the opposition of the "--no-delete=ignore" option which is
                           ignored when the -/  is  used).  Of  course  "--no-delete=ignore"  and
                           "--no-delete=only"  are  mutually  exclusive,  because if both of them
                           were available at the same time dar would do nothing at all.

       -r, --recent        only restore files that are absent or more recent than  those  present
                           in filesystem. If -/ option is used, this option is ignored!

       -f, --flat          do  not  restore directory structure. All file will be restored in the
                           directory given to -R, if two files  of  the  same  name  have  to  be
                           restored, the usual scheme for warning (-w option) and overwriting (-n
                           option) is used. No rename  scheme  is  planned  actually.  When  this
                           option  is  set,  dar  does  not remove files that have been stored as
                           deleted since last backup. (-f implicitly implies -k).

       -ae, --alter=erase_ea
                           [DEPRECATED use -/ instead] Drop all existing EA of files  present  in
                           filesystem that will have to be restored. This way, the restored files
                           will have the exact set of EA they had at the time of the  backup.  If
                           this  option  is  not  given,  a  file  to  restore  will  have its EA
                           overwritten by those present in the backup and if some extra  EAs  are
                           present  they  will remain untouched. See the Note concerning Extended
                           Attributes (EA) above for a detailed explanation about this  behavior.
                           If -/ option is used, this option is ignored!

       -A, --ref [<path>]/<basename>
                           -A  takes a different meaning when used with -x, -d or -t. The archive
                           given after -A must be an extracted catalogue  based  on  the  archive
                           given  after  -x, -d or -t.  This extracted catalogue will be used for
                           the operation in place of the catalogue located in the  archive.  This
                           feature  is intended for the case of corruption within an archive that
                           affects the internal catalogue. If you have a sane extracted catalogue
                           of a given archive you can use it as replacement of the one located in
                           the archive itself. Note that with the -A option  are  also  available
                           the following options: -F, -J and -*.

       -D, --empty-dir     At  restoration  time,  if  -D is not specified (default) any file and
                           directory is restored in regard to the filtering  mechanism  specified
                           (see  -I, -X, -P, -g, -[ and -] options). But if -D option is provided
                           the restoration skips directory trees that do not contain saved files.
                           This  avoid  having  a  huge  empty  tree  with  a  few restored files
                           especially when restoring a differential archive in  an  empty  place.
                           Note:  This  feature cannot work when --sequential-read is used, as it
                           is not possible to know whether a directory contains or not some saved
                           files  at  the  time  the  directory inode is read from the archive in
                           sequential reading mode.

       -2, --dirty-behavior { ignore | no-warn }
                           At restoration time, if a file in the archive is  flagged  as  "dirty"
                           (meaning  that it had changed at the time it was saved), user is asked
                           for confirmation before restoring it. Specifying  "ignore"  will  skip
                           those  dirty  files,  while  "no-warn"  will restore them without user
                           confirmation. This feature is  incompatible  with  sequential  reading
                           mode,  in  this  mode  dar  cannot know whether a file is dirty before
                           having restored it, in consequences, dar cannot warn nor ignore that a
                           file  is dirty before restoring it, at that time if a file is dirty it
                           will be removed unless dirty-behavior is set to "no-warn".

       -al, --alter=lax    Dar will try to workaround data corruption of  slice  header,  archive
                           header  and  catalogue.  This  option  is  to  be  used as last resort
                           solution when facing media corruption. It is rather and still strongly
                           encourage  to  test  archives  before relying on them as well as using
                           Parchive to do parity data of each slice to be able  to  recover  data
                           corruption  in  a much more effective manner and with much more chance
                           of success. Dar also has the possibility to backup a  catalogue  using
                           an  isolated catalogue, but this does not face slice header corruption
                           or even saved file's data corruption (dar will  detect  but  will  not
                           correct such event).

       -/, --overwriting-policy <policy>
                           Overwriting  policy can be used for archive restoration to define when
                           and how file overwriting can occur. See above the description of  this
                           option.

       TESTING AND DIFFERENCE OPTIONS (to use with -t or -d)

       -ado-not-compare-symlink-mtime, --alter=do-not-compare-symlink-mtime
                           Whith  this option set, when comparing a symlink, mtime difference, no
                           message shows when symlink in archive ans  symlink  on  filesystem  do
                           only differ by their by their mtime. See also -O option.

       No  other  specific  option,  but  all general options are available except for example -w
       which is useless, as testing and comparing only read  data.  -A  option  is  available  as
       described just above for extraction (backup of internal catalogue).

       Doing  a  difference in sequential read mode is allowed but hard linked inodes can only be
       compared to the filesystem the first time they are met, next hard links to this same inode
       cannot  obtain the corresponding data because skipping backward in sequential read mode is
       forbidden. In that situation, the hard links are reported as skipped,  meaning  that  data
       comparison could not be performed.

       LISTING OPTIONS (to use with -l)

       -T, --list-format=<normal | tree | xml>, --tree-format
                           By  default, listing provides a tar-like output (the 'normal' output).
                           You can however get a tree-like output (the 'tree' output) or  an  XML
                           structured  output  (the  'xml' output). Providing -T without argument
                           gives the same as providing the 'tree'  argument  to  it.  The  option
                           --tree-format    is   an   alias   to   --list-format=tree   (backward
                           compatibility). Note that the files doc/dar-catalog-*.dtd  define  the
                           format  of  the  XML output listing (This file is also installed under
                           $PREFIX/share/doc)

       -as, --alter=saved  list only saved files

       -alist-ea, --alter=list-ea
                           list Extended Attributes name for each file that has some.

       -I, -X, -P, -g, -[, -]
                           can be used to filter file to list base on their name or path.

       Else only -v and -b from general options are useful. Note  that  -v  displays  an  archive
       summary  first,  where a detailed of information about the archive can be obtained. If you
       want to display only this summary use -q with -l option.

       displayed fields

                 [data]    possible values are [     ] or [Saved] or [InRef] or[DIRTY].  [      ]
                           means  that  the  data  has  not been saved because there is no change
                           since backup of reference. [Saved] means that the data has been saved,
                           and thus this archive is able to restore the file. [InRef] was used in
                           archive generated by dar version 2.3.x and before,  when  isolating  a
                           catalogue  from  an  archive  and means that the file was saved in the
                           reference archive. Last,  [DIRTY]  means  that  data  is  saved  (like
                           [Saved])  but  has  changed at the time dar was reading it for backup,
                           leading dar to possibly store the file in a state it never had.

                 [EA]      possible values are " " (empty string) or [     ] or [InRef],  [Saved]
                           or [Suppr]. It Shows whether Extended Attributes are present and saved
                           ([Saved]), are present but not saved ([     ]) which means there is no
                           change  since  backup  of  reference, if there is no EA saved for this
                           file (empty string) or if some EA  were  present  in  the  archive  of
                           reference  but none is currently available ([Suppr]). [InRef] was used
                           when isolating a catalogue (release 2.3.x and before) from an  archive
                           and means that the file was saved in the reference archive.

                 [compr]   possible values are [....%] or [-----] or [     ] or [worse]. Shows if
                           the   file   has   been   compressed   and   the   compression   ratio
                           "compressed/uncompressed"  ([...%],  for example [ 33%] means that the
                           compressed data takes a third of the corresponding uncompressed  data,
                           thus  the  lower  is this ratio, the better is the compression), or if
                           the file is stored without compression ([    ] see -Y and -Z  options)
                           or if the file is not subject to compression because it is not a saved
                           regular file ([----]), or if the file takes more space compressed than
                           its  original  size  ([worse]), due to compression overhead. Note that
                           the compression ratio used here is the  inverse  of  what  compression
                           tools  usually  provide  (uncompressed/compressed). The reason of this
                           choice is that the ratio used here has the advantage  to  always  stay
                           between  0 and 100%, which is much more easy to work with to provide a
                           well formatted output.

                 [S]       possible values are [ ] or [X]. [X] only applies to saved plain files,
                           and  tells  that  the file is stored using sparse file data structure:
                           not all data is stored, long sequence of zeros are skipped. This  also
                           means  that  at restoration time, if the filesystem supports it, holes
                           will be  restored.  To  store  hole  information  libdar  uses  escape
                           sequence  (special  sequence  of  byte),  but to avoid real data to be
                           considered as such escape sequence, a special escape sequence is  used
                           when  data looks like an escape sequence. So if a data contains a such
                           escape sequence, it must be read as if it contains holes to be able to
                           restore  back  the data in its original form. For that reason, in some
                           rare circumstances (saving an dar archive inside a dar archive without
                           compression  or  encryption,  for  example) a file without hole may be
                           marked [X] as if it had holes and will be longer by on byte  for  each
                           data sequence looking like an escape sequence.

                 permission
                           see  ls  man page. Note that a star (*) is prepended to the permission
                           string if the corresponding inode  is  linked  several  times  to  the
                           directory structure (hard link).

                 user      owner of the file

                 group     group owner of the file

                 size      size  in byte of the file (if compression is enabled, the real size in
                           the archive is "compression rate" time smaller).

                 date      the last modification date of the file. The last access time  is  also
                           saved and restored, but not displayed.

                 filename  The name of the file.

       EXPLICIT OPTIONAL ARGUMENTS

              When  dar has not been compiled with GNU getopt, which is not present by default on
              some systems like FreeBSD, you may lack the optional arguments syntax. For  example
              "-z"  will  create a parse error on command-line, or in -B configuration files. The
              solution is to explicitly give the  argument.  Here  follows  a  list  of  explicit
              argument to use in place of optional ones:

       -z                  must be replaced by -z 9

       -w                  must be replaced by -w d or -w default

       -H                  must be replaced by -H 1

       -0                  must be replaced by -0 ref

       important  !   When  using  GNU getopt(), optional arguments are available by sticking the
       argument to the short option: "-z" for example is available as well as "-z9". But  "-z  9"
       is wrong, it will be read as "-z" option and "9", a command line argument (not an argument
       to the -z option). In the other side, when using a non GNU getopt this time, "-z"  becomes
       an  option  that  always requires an argument, and thus "-z 9" is read as "-z" option with
       "9" as argument, while "-z9" will be rejected as a unknown option,  and  "-z"  alone  will
       generate  an  error  as no argument is provided. In consequences, you need a space between
       the option (like "-z") and its argument (like "9"), when  dar  does  not  rely  on  a  GNU
       getopt()  call,  which  also  imply you to explicitly use arguments to options listed just
       above.

EXIT CODES

       dar exits with the following code:

       0         Operation successful.

       1         Syntax error on command-line.

       2         Error due to a hardware problem or a lack of memory.

       3         Detection of a condition that should never happen, and which is considered as  a
                 bug of the application.

       4         Code  issued  when  the user has aborted the program upon dar question from dar.
                 This also happens when dar is not run from a terminal (for example launched from
                 crontab)  and  dar has a question to the user. In that case, dar aborts the same
                 way as if the user pressed the escape key at the question prompt.

       5         is returned when an error concerning the treated data has been  detected.  While
                 saving,  this  is  the  case  when  a  file  could  not be opened or read. While
                 restoring, it is the case when a file could not be created  or  replaced.  While
                 comparing,  it  is the case when a file in the archive does not match the one in
                 the filesystem. While testing, it is the case when a file is  corrupted  in  the
                 archive.

       6         an  error  occurred  while  executing user command (given with -E or -F option).
                 Mainly because the creation of a new process is not possible (process  table  is
                 full)  or  the  user  command  returned  an error code (exit status different of
                 zero).

       7         an error has occurred when calling a libdar routine. This means the caller  (dar
                 program),  did  not  respect  the  specification  of  the  API  (and this can be
                 considered as a particular case of a bug).

       8         the version of dar used is based in finite length integers (it has been compiled
                 with  the  option  --enable-mode=...).  This  code  is  returned when an integer
                 overflow occurred. use the full version  (based  in  the  so  called  "infinint"
                 class) to avoid this error.

       9         this  code  indicates  an unknown error. I have probably forgotten to update the
                 exception caching code to take care of new exceptions... this is a minor bug you
                 are welcome to report.

       10        you have tried to use a feature that has been disabled at compilation time.

       11        some saved files have changed while dar was reading them, this may lead the data
                 saved for this file not correspond to a valid state for this file. For  example,
                 if  the  beginning  and  the end of the file have been modified at the same time
                 (while dar is reading it), only the  change  at  the  end  will  be  saved  (the
                 beginning has already been read), the resulting state of the file as recorded by
                 dar has never existed and may cause problem to the application using it.

SIGNALS

       If dar receives a signal (see kill(2) man page) it will take the  default  behavior  which
       most of the time will abruptly abort the program, except for the following signals:

       SIGINT    This  signal  is  generated  by  the  terminal  when  hitting  CTRL-C  (with the
                 terminal's default settings), it can also be generated with the kill command

       SIGTERM   This signal is generated by the system when changing of run-level in  particular
                 when doing a shutdown, it can also be generated with the kill command

       SIGHUP    Depending  on  the  system, this signal may be sent before the SIGTERM signal at
                 shutdown time, it can also be generated with the kill command

       SIGQUIT   This signal  is  generated  by  the  terminal  when  hitting  CTRL-\  (with  the
                 terminal's default settings), it can also be generated with the kill command

       SIGUSR1   This signal can be generated by the kill command

       SIGUSR2   This signal can be generated by the kill command

       For  those  previous  signals, two behavior exit. For SIGHUP, SIGINT, SIGQUIT, SIGTERM and
       SIGUSR1, a delayed termination is done: the backup or isolation operation is stopped,  the
       catalogue  is  appended  to  the  archive  and  the archive is properly completed with the
       correct terminator string, this way the generated archive is usable, and can  be  used  as
       reference  for a differential backup at a later time. Note that if an on-fly isolation had
       been asked, it will *not* be performed, and no user command will be launched even  if  dar
       has  been  configured  for (-E option). For SIGUSR2 instead a fast termination is done: in
       case of backup or isolation, the archive is not completed at all, only  memory  and  mutex
       are released properly.

       For both type of termination and other operations than backup or isolation, dar's behavior
       is the same: For restoration, all opened directories are closed and  permissions  are  set
       back  to  their  original values (if they had to be changed for restoration). For listing,
       comparison, testing, the program aborts immediately.

       Another point, when using one of the previous signals, dar  will  return  with  the  exist
       status  4  meaning  that the user has aborted the operation. Note that answering "no" to a
       question from dar may also lead dar to exit this way. last,  If  before  the  end  of  the
       program the same signal is received a second time, dar will abort immediately.

FILES

       $HOME/.darrc  and  /etc/darrc if present are read for configuration option. They share the
       same syntax as file given to -B option. If $HOME/.darrc is not present and  only  in  that
       case,  /etc/darrc  is  consulted.  You  can  still  launch  /etc/darrc from .darrc using a
       statement like -B /etc/darrc.  None of these file need to be present, but if they are they
       are  parsed AFTER any option on the command line and AFTER included files from the command
       line (files given to the -B option). NOTE: if $HOME is not defined $HOME/.darrc default to
       /.darrc (at the root of the filesystem).

       Else  you  can see conditional syntax bellow, and -N option above that leads dar to ignore
       the /etc/darrc and $HOME/.darrc files.

CONDITIONAL SYNTAX

       configuration files (-B option, $HOME/.darrc and /etc/darrc) usually contain a simple list
       of  command-line  arguments,  split  or  not over several lines, and eventually mixed with
       comments (see -B option for more). But, you can also use make-like targets to  ask  for  a
       particular set of commands to be used in certain conditions.

       A condition takes the form of reserved word immediately followed by a colon ':'. This word
       + colon must stand alone on its line, eventually  with  spaces  or  tabs  beside  it.  The
       available conditions are:

       extract:            all  option  listed  after  this  condition  get used if previously on
                           command line or file the -x option has been used

       create:             all option listed after this  condition  get  used  if  previously  on
                           command line or file (-B option) the -c option has been used

       list: (or listing:) if -l option has been used

       test:               if -t option has been used

       diff:               if -d option has been used

       isolate:            if -C option has been used

       merge:              if -+ option has been used

       reference:          if  -A  option  has been used (except when -A is used for the snapshot
                           feature or in conjunction with -af)

       auxiliary:          if -@ option has been used

       all:                in any case

       default:            if no -c, -d, -x, -t, -C, -l  or -+ option has been used at this point
                           of the parsing.

       The  condition  stops  when  the  next  condition  starts, or at End of File. The commands
       inserted before any condition are equivalent to those inserted after the "all:" condition.
       Remark  :  -c  -d -x -t -C and -l are mutual exclusive, only one of them can be used while
       calling dar.

       Here is an example of conditional syntax

              create:
                # upon creation exclude the
                # following files from compression
              -Z "*.mp3" -Z "*.mpg"

              all:
              -b
              -p

              default:
              # this will get read if not
              # command has been set yet
              -V
              # thus by default dar shows its version

              all:
              -v
              # for any command we also ask to be verbose
              # this is added to the previous all: condition

       Last point, you may have several time the same condition (several all: ) for example. They
       will be concatenated together.

USER TARGETS

       User targets are arbitrary words found on command line, that do not start by a dash ('-').
       On most system they should be placed after command and options. They  are  collected  from
       command-line first, then comes the parsing of command and optional arguments. Their use is
       to extend conditional syntax described just above by having a set of options activated  by
       the  user  just  adding  a single word on command-line. Of course user targets must not be
       equal to one of the reserved words of the conditional syntax (extract,  create,  ...  all,
       default). A valid target is a word (thus without space) composed of lowercase or uppercase
       letters (case is  sensitive)  with  eventually  digits,  dashes  '-'  or  underscores  '_'
       characters.

       Let's see an example of use:

       first a DCF file named 'example.dcf' that will be given on command line:

              # normal set of files considered for backup

              create:
                -R /
                -P proc
                -P sys
                -P mnt
                -D

              #  if  the  "home" user target is applied on command line the following command get
              added

              home:
                 -g home

              # if the "verbose" user target is used, we will have some more verbosity ...

              verbose:
                -v
                -vs

       Then we could run dar in the following ways:

       dar -c test -B example.dcf
                           in that case only the command in the "create:" section of  example.dcf
                           would be used.

       dar -c test -B example.dcf verbose
                           here  over  the  "create:"  target  the  commands under the "verbose:"
                           target (-v and -vs) would be also used

       dar -c test -B example.dcf verbose home
                           last we use two user targets "verbose:" and "home:"  in  addition  the
                           the "create:" target of the usual conditional syntax.

       Note that if the last option *may* receive an argument, the first user target that follows
       it will be assumed an argument to that option. To avoid this, either change the  order  of
       options  on  command  line for the last option been an option that never or always uses an
       argument (for example -b never has an argument while -s always has one). Or  separate  the
       options  from the user targets by the -- word. And of course you can also use the explicit
       argument of the last option (see EXPLICIT OPTIONAL ARGUMENT section, above).

       Second point: It is allowed to have user targets inside a  DCF  file.  Note  however  that
       targets  are  collected  in  a first phase, which leads some part of the file to be hidden
       (because the corresponding conditional syntax or user target is not  present).  Then,  the
       remaining  part  of the file is then parsed and actions for each option found is taken. At
       that time, new user targets found are just recorded, but they do not  modify  the  current
       DCF  file  layout,  in  particular,  hidden  part  of  the  file  stay  hidden even if the
       corresponding user target is read in this same  file.  Next  DCF  parsing  (which  may  be
       triggered  by a second -B option on the command line, or by a -B option inside the current
       parsed DCF file) will thus be done with the additional targets found  in  that  first  DCF
       file, so in a way you may have user targets that activate other user targets. Here follows
       an examples of two DCF files, first.dcf and second.dcf:

              # cat first.dcf
                target3:
                  -K toto

                target1:
                  target2
                  -B second.dcf
                  target3

                target2:
                  #never reached
                  -s 10k

              # cat second.dcf
                target2:
                  -v
                target3:
                  -b

       In that example, target1 activates both target2 and  target3,  but  at  the  time  of  the
       parsing  of  first.dcf,  neither target2 nor target3 were yet activated thus '-K toto' and
       '-s 10k' will never be given to dar (unless activated beside target1 before first.dcf  get
       parsed),  however  when  comes  the  time  to  parse second.dcf, target2 *and* target3 are
       activated, thus both '-v' and '-b' will be passed to dar, even  if  'target3'  is  located
       after '-B second.dcf' in the file first.dcf

ENVIRONMENT

       DAR_DCF_PATH
                 if  set, dar looks for Dar Configuration File (DCF files, see -B option) that do
                 not have an fully qualified path  in  the  directories  listed  in  DAR_DCF_PATH
                 environment  variable.  This  variable  receives  a column (:) separated list of
                 paths and look in each of them in turn, up to the first  file  found  under  the
                 requested name.

       DAR_DUC_PATH
                 if  set,  dar looks for Dar User Command (DUC files, see -E, -F, -~, -= options)
                 that  do  not  have  a  fully  qualified  path  in  the  directories  listed  in
                 DAR_DUC_PATH.  This  variable  receives a column (:) separated list of paths and
                 looks in each of them in turn, up to the first file found  under  the  requested
                 name.

EXAMPLES

       You  can  find  some more examples of use in the tutorial, mini-howto, sample scripts, and
       other related documentation. All these are available in dar's source package, and are also
       installed  beside  dar  in  the <--prefix>/share/dar directory. This documentation is also
       available on-line at http://dar.linux.free.fr/doc/index.html#2

SEE ALSO

       dar_xform(1), dar_slave(1), dar_manager(1), dar_cp(1), TUTORIAL and NOTES included in  the
       source package and also available at http://dar.linux.free.fr/doc/index.html

KNOWN BUGS

       dar  cannot restore time of symbolic links. Many (all ?) UNIX do not provide any way to do
       that, the utime() system call changes the file pointed to by the link rather than the date
       of the link itself.

       dar  saves  and  restores  atime  and mtime, but cannot restore ctime (last inode change),
       there does not seems to be a standard call to do that under UNIX.

AUTHOR

       http://dar.linux.free.fr/
       Denis Corbin
       France
       Europe