|Linux & Unix Commands - Search Man Pages
packingrules(4) File Formats packingrules(4)
packingrules - packing rules file for cachefs and filesync
$HOME/.packingrules is a packing rules file for filesync and cachefspack. $HOME/.pack-
ingrules contains a list of directories and files that are to be packed and synchronized.
It also contains a list of directories 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 file-
name arguments. By using filesync options, users can augment the packing rules in
Many users choose to manually create the packing rules file and edit it by hand. Users can
edit $HOME/.packingrules (using any editor) to permanently 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 expressions 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 following formats:
major. minor. This line is not actually 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 specified. 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 current BASE)
that are to be kept synchronized. This specification is recursive, in that specifying
the name of a directory automatically includes all files and subdirectories it con-
tains. Regular expressions (as described in glob and gmatch) are permitted. See
glob(1) and gmatch(3GEN).
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 rela-
tive to the BASE directories. 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 exclamation 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 new-
line 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 executed as a command. The command will be
run in the current BASE directory. 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 argu-
ment 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.packingrules 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
# a few of my favorite mail boxes should be replicated
# 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
# 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.11 23 Dec 1996 packingrules(4)
All times are GMT -4. The time now is 08:10 PM.