NAME
packingrules — packing rules file for cachefs
DESCRIPTION
packingrules
is a packing rules file for
cachefspack.
packingrules contains a list of directories and
files that are to be packed.
It also contains a list of directories and files that are to
be specifically excluded from packing.
See
cachefspack(1M).
Many users choose to manually create the packing rules file
and edit it by hand.
Users can edit the packingrules (using
any editor) to permanently change the packingrules file,
or to gain access to more powerful options that are not
available from the command line (such as the
IGNORE
command).
It is much easier to enter complex wildcard expressions by
editing the packingrules file.
Following is a description of the lines in a packing rules
file.
Blank lines and lines that begin with a pound sign
(#)
are ignored.
Lines can be continued by placing a backslash (\)
immediately before the newline character.
All other lines in the packingrules file have one of
the following formats:
- BASE directory-1 [directory-2]
This line identifies a directory (or pair of directories)
under which files should be packed.
At least one directory name must 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 subdirectories
beneath the current
BASE
directory to be packed.
This specification is recursive.
That is, specifying the name of a directory automatically includes
all files and subdirectories it contains.
- IGNORE name ...
This line enumerates a list of files that are not to be packed.
Regular expressions are permitted.
There are important differences between the arguments to the
LIST
and the
IGNORE
statements.
The arguments to
LIST
statements can contain slashes and are
interpreted as file names relative to the
BASE
directories.
The arguments to
IGNORE
statements 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
or an
IGNORE
statement begins with an exclamation point
(!),
the remainder of the statement will be executed as a command
that 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
(LIST
command)
or to be excluded from the packing list
(IGNORE
command).
For the
LIST
command, the resulting file names will be interpreted
relative to the enclosing
BASE
directory.
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 combinations.
The order is not important.
EXAMPLES
The use of these statements is illustrated in the following
packing rules file.
#
# Ignore junk files.
#
IGNORE core *.o *.bak *%
#
# Pack everything in the work subdirectory and in a few
# favorite mailboxes.
#
BASE /net/bigserver/export/home/myname
LIST work
LIST m/incoming
LIST m/action
LIST m/pending
#
# Pack two important project directories but skip
# all postscript output.
#
BASE /net/bigserver/export/projects $HOME/projects
LIST poindexter epiphany
IGNORE *.ps
#
# Pack the foonly package.
#
BASE /net/bigserver/opt/foonly /opt/foonly
LIST !cat .packinglist
#
# Also pack the latest executables for the standard
# build environment.
#
BASE /net/bigserver/export/buildenv $HOME/buildenv
LIST !find . -type f -a -perm -111 -a -print
AUTHOR
packingrules
was developed by Sun Microsystems, Inc.