Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Apropos / Subsearch:
optional field

packingrules(4)                  File Formats                  packingrules(4)

       packingrules - packing rules file for cachefs and filesync


       $HOME/.packingrules  is a packing rules file for filesync and  cachefs-
       pack. $HOME/.packingrules contains a list of directories and files that
       are to be packed and synchronized.  It also contains a list of directo-
       ries and files that  are to be specifically excluded from  packing  and
       synchronization.  See  filesync(1) and  cachefspack(1M).

       The  $HOME/.packingrules  file is automatically created if users invoke
       filesync with filename arguments. By using filesync options, users  can
       augment the packing rules in $HOME/.packingrules.

       Many users choose to manually create the packing rules file and edit it
       by hand. Users can edit $HOME/.packingrules (using any editor) to  per-
       manently change the $HOME/.packingrules file, or to gain access to more
       powerful options that are not available from the command line (such  as
       IGNORE  commands).  It is much easier to enter complex wildcard expres-
       sions by editing the $HOME/.packingrules file.

       Blank lines and lines that begin with a pound sign  (`#') are ignored.

       Any line can be continued by placing  a  backslash   (`\')  immediately
       before the  NEWLINE.

       All  other  lines in the  $HOME/.packingrules file have one of the fol-
       lowing formats:

       PACKINGRULES                    major. minor.  This line is  not  actu-
                                       ally  required,  but  it  should be the
                                       first   line  of  every  packing  rules
                                       file.  This line identifies the packing
                                       rules file for the  file(1) command and
                                       specifies  a format version number. The
                                       current  version  number  is  1.1.  See

       BASE directory-1 [directory-2]  This  line  identifies  a directory (or
                                       pair of directories) under which  files
                                       should  be  packed and synchronized. At
                                       least one directory name must be speci-
                                       fied.  For rules that are to be used by
                                       filesync a second directory name (where
                                       the copies are to be kept) must also be
                                       specified. The arguments must be  fully
                                       qualified  path  names, and may include
                                       environment variables.

       LIST name ...                   This line enumerates a  list  of  files
                                       and  sub-directories  (beneath the cur-
                                        BASE) that are to  be  kept   synchro-
                                       nized. This specification is recursive,
                                       in that specifying the name of a direc-
                                       tory  automatically  includes all files
                                       and subdirectories it contains. Regular
                                       expressions  (as described in glob  and
                                       gmatch) are permitted. See glob(1)  and

       IGNORE name ...                 This  line  enumerates  a list of files
                                       that are not to be  kept  synchronized.
                                       Regular  expressions   (using glob  and
                                       gmatch) are permitted.

       There are important differences  between  the  arguments  to  LIST  and
       IGNORE  statements.  The  arguments  to  a  LIST  statement can contain
       slashes and are interpreted as file names relative to the  BASE  direc-
       tories.  The  arguments  to  an  IGNORE  statement are simpler names or
       expressions that cannot contain slashes. An IGNORE statement  will  not
       override  a  LIST  statement. IGNORE statements only exclude files that
       are found beneath LISTed directories.

       If the first name argument to a  LIST statement begins with an exclama-
       tion point  (`!'), the remainder of the statement will be executed as a
       command. The command will be run in the  current  BASE  directory.  The
       output  of  the command will be treated as a  list of newline separated
       file names to be packed/synchronized. The resulting file names will  be
       interpreted relative to the enclosing  BASE directory.

       If  the  first  name  argument  to  an  IGNORE statement begins with an
       exclamation point  (`!'), the remainder of the statement will  be  exe-
       cuted  as a command. The command will be run in the current BASE direc-
       tory. The command will be expected to figure out which names should not
       be synchronized. The output of the command will be treated as a list of
       newline separated file names that should be excluded from  the  packing
       and synchronization list.

       Commands  will  be broken into distinct arguments and run directly with
       sh -c. Blanks can be embedded in an argument by escaping  them  with  a
       backslash  (`\')  or  enclosing the argument in  double quotes (` " ').
       Double quotes can be passed in arguments by escaping the double  quotes
       with a backslash (`\').

       LIST lines only apply to the  BASE statement that precedes them. IGNORE
       lines can appear before any  BASE statement (in which case  they  apply
       to  all  BASEs)  or  after  a  BASE statement (in which case  they only
       apply to the  BASE that precedes them). Any number of  these statements
       can occur in any combination. The order is not important.

       Example 1: A sample $HOME.packingrules file.

       The use of these statements is illustrated in the following $HOME.pack-
       ingrules file.

       # junk files, not worth copying
       IGNORE core *.o *.bak *%
       # most of the stuff I want to keep in sync is in my $HOME
       BASE /net/bigserver/export/home/myname $HOME
       # everything in my work sub-directory should be maintained
       LIST work
       # a few of my favorite mail boxes should be replicated
       LIST m/incoming
       LIST m/action
       LIST m/pending
       # I like to carry around a couple of project directories
       # but skip all the postscript output
       BASE /net/bigserver/export/projects $HOME/projects
       LIST poindexter epiphany
       IGNORE *.ps
       # the foonly package should always be kept on every machine
       BASE /net/bigserver/opt/foonly /opt/foonly
       LIST !cat .packinglist
       # and the latest executables for the standard build environment
       BASE /net/bigserver/export/buildenv $HOME/buildenv
       LIST !find . -type f -a -perm -111 -a -print

       file(1), filesync(1), cachefspack(1M)

SunOS 5.10                        23 Dec 1996                  packingrules(4)