This is the list of patterns which control which subdirectories are
included and which subdirectories are excluded.

If the first four characters of a line are 'inc ', then the rest of the
line is an include pattern. If the first four characters of a line are
'exc ', then the line is an exclude pattern. All other lines are
comments and are ignored.

Patterns are perl patterns, which are version 8 regular expressions,
like grep patterns, NOT like sh patterns. For more information see the
man page for perlre (run the command 'man perlre').

Patterns are checked against the name of each directory. The name
includes the path relative to the starting directory. Usually the
starting directory is the root directory, so the name is the absolute
name without the initial '/'.

If a directory is excluded, the directory will not be recursed into.
The directory contents will not be listed. No subdirectories will be
found. Thus if a directory is excluded, all subdirectories are
excluded as well. So if you want to exclude most of a directory but
include one subdirectory, do not exclude the directory then include
the one directory you want; instead include the directory, exclude all
subdirectories, then include the subdirectory you want. For example,
suppose you want to exclude everything in var except var/lib:

# exc ^var
# inc ^var\/lib     wrong. the first pattern matches var, so var is excluded,
                    so var/lib is never found and cannot be included. The
                    second pattern is meaningless.

# inc .
# exc ^var\/
# inc ^var\/lib($|\/)   right. The first pattern matches var, so var is
                        included.  The second pattern matches all
                        subdirectories of var but does not match var,
                        so all subdirectories of var are excluded.
                        The third pattern matches var/lib and all
                        subdirectories of var/lib, so var/lib and
                        subdirectories are included.

The pattern '^var\/lib' will match var/lib, and all subdirectories of
var/lib, and also var/libations. The pattern '^var\/lib$' will match
var/lib, but not subdirectories of var/lib, and not var/libations. The
pattern '^var\/lib\/' will match subdirectories of var/lib, but not
var/lib, and not var/libations. The pattern '^var\/lib($|\/)' will
match var/lib and subdirectories of var/lib, but not var/libations.

Remember, the pattern matches the name of a directory, but it is the
contents of the directory which are excluded; the directory is still
listed with the contents of the parent directory.

If the contents of a directory are excluded, they are also removed from
the virtual restore list. This makes the virtual restore list smaller,
which saves disk space. This is different from the include/exclude list;
if a file is excluded because of a pattern in the include exclude list,
the file is not removed the virtual restore list.

Anything which is excluded in the directory include exclude list could
be excluded from the include exclude list instead. You could do all
excluding from the include/exclude list, and then you would have only
one list instead of two. But it is faster to exclude files from the
directory exclude list.

It should be safe to change this file between backups.

If you do some backups, and then change this file so that additional
directories are excluded, then the files which are now excluded will
not be backed up. But if the files were backed up before, they will be
in the old control and ls lists; you probably want to manually remove
them from the old control lists.

If you do some backups, and then change this file so that previously
excluded directories are now included, then the files will have been
removed from the virtual restore list during previous backups; since
they will not be in the old virtual restore list, the next backup will
think they are new files and will back them up, even if they are old
files.

If you list the patterns which match more frequently after the
patterns which match less frequently, then Paranoid Backup will be a
few nanoseconds faster.

include everything
inc .

exclude lib, dev, boot, usr, proc, junk486
if we recompile the modules, then paranoid backup will see that the
module files have changed. I do not want to backup the module files
because I can recompile the module files anytime, so I exclude lib.
linux changes the owner of ttys when someone logs in, and gnome
changes the owners of many devices every time someone starts gnome. I
do not want to backup these devices, so I exclude dev. if we recompile
the kernel, I do not want to backup the kernel and map files, so I
exclude boot
exc ^(lib|dev|boot|usr|proc|junk486|floppy|bfloppy|cdrom|windows|lib386)$

exclude /root/Web_tmp
exc ^root\/Web_tmp$

exclude every directory named t,tmp,mnt,Junk,junk,recycled,lost+found,Trash
exc (^|\/)(t|tmp|mnt|Junk|junk|recycled|lost\+found|Trash)$

exclude directories with names ending in .dontbackup or .tmp
exc \.dontbackup$
exc \.tmp$

exclude subdirectories of var
exc ^var\/

include var/usr_etc
inc ^var\/usr_etc($|\/)

exclude home/a, the home directory of the passwordless anonymous user
exc ^home\/a$

exclude information/internet/ftp and information/internet/http
exc ^information\/internet\/ftp$
exc ^information\/internet\/http$

exclude netscape and mozilla cache files
exc netscape\/cache$
exc ozilla.*Cache$
