Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mtree(8) — 386BSD 1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(1)

chown(1)

chgrp(1)

cksum(1)

find(1)

stat(2)

fts(3)

mkproto(8)

MTREE(8)                386BSD System Manager's Manual                MTREE(8)

NAME
     mtree - map a directory hierarchy

SYNOPSIS
     mtree [-cderux] [-f spec] [-p path]

DESCRIPTION
     The utility mtree compares a directory hierarchy against a specification
     for a directory hierarchy.  By default, the specification is read from
     the standard input.  Mtree verifies that the tree rooted in the current
     directory matches the specification.

     Messages are written to standard output for any files whose
     characteristics do not match those of the specification, or which are
     missing from either the specification or the tree.

     The options are as follows:

     -c    Print a specification for the tree to standard output.

     -d    Ignore everything except directory type files.

     -e    Don't object to files that are in the tree but not in the
           specification.

     -f    Read the specification from file, instead of from standard input.

     -p    Traverse the tree rooted in path, instead of the current directory.

     -r    Remove any files in the tree that are not described in the
           specification.

     -u    Modify the owner, group, and permissions of existing files to match
           the specification, as well as create any missing directories.
           Owner, group, and permissions must all be specified for missing
           directories to be created.

     -x    Don't descend below any mount points.

     Specifications are mostly composed of ``keywords'', i.e. strings that
     that specify values relating to files.  No keywords have default values,
     and if a keyword has no set value no checks based on it are performed.

     Currently supported keywords are as follows:

     cksum       The checksum of the file using the algorithm specified by the
                 program cksum(1).

     ignore      Causes the hierarchy below the file to be ignored.

     group       The group of the file; may be either numeric or symbolic.

     mode        The current file's permissions as an absolute (octal) or
                 symbolic value (see chmod(1)).

     nlink       The number of hard links the file is expected to have.

     owner       The owner of the file; may be either numeric or symbolic.

     size        The size, in bytes, of the file.



     link        The file a symbolic link is expected to reference.

     time        The last modification time of the file.

     type        The type of the file; may be set to any one of the following:
                 block       block special device
                 char        character special device
                 dir         directory
                 fifo        fifo
                 file        regular file
                 link        symbolic link
                 socket      socket

     There are four types of lines in a specification.

     The first type of line sets a ``global'' value for a keyword, and
     consists of a leading ``/set'' followed by whitespace, followed by sets
     of keyword/value pairs, separated by whitespace.  Keyword/value pairs
     consist of a keyword, followed by a equals sign (``=''), followed by a
     value, without intervening whitespace.  Once a keyword has been set, its
     value remains unchanged until either set again or unset.

     The second type of line unsets keywords and consists of a leading
     ``/unset'', followed by whitespace, followed by one or more keywords,
     separated by whitespace.

     The third type of line is a file specification and consists of a file
     name, followed by whitespace, followed by zero or more whitespace
     separated keyword/value pairs.  The file name may be preceded by any
     number of whitespace characters.  The file name may contain any of the
     standard file name matching characters (``['', ``]'', ``?'' or ``*''), in
     which case files in the hierarchy will be associated with the first
     pattern that they match.

     Each of the keyword/value pairs consist of a keyword, followed by an
     equals sign (``=''), followed by the keyword's value, without intervening
     whitespace.  These values override, without changing, the global value of
     the corresponding keyword.

     All paths are relative.  Specifying a directory will cause subsequent
     files to be searched for in that directory hierarchy.  Which brings us to
     the last type of line in a specification: a line containing only the
     string ``..'' causes the current directory path to ascend one level.

     Empty lines and lines whose first non-whitespace character is a hash mark
     (``#'') are ignored.

     Mtree exits with a status of 0 on success and >0 if an error occurred or
     the tree did not match the specification.

FILES
     /etc/mtree  system specification directory

SEE ALSO
     chmod(1),  chown(1),  chgrp(1),  cksum(1),  find(1),  stat(2),  fts(3),
     mkproto(8)

BUGS
     The cksum keyword is not yet implemented.

     The time keyword should be specifiable in human readable terms.

EXAMPLE
           #         fs: /a/staff/rick/mybin
           #         by: rick
           #       date: Fri May 25 12:26:57 1990

           /set group=staff mode=0555 nlink=1 owner=rick type=file
           [               nlink=2 size=6144
           adb             size=53248
           df              group=operator mode=02555 size=20480
           ps              group=kmem mode=02555 size=54272
           rcp             owner=root mode=04555 size=79872
           test            nlink=2 size=6144

           /set group=wheel mode=0444 nlink=1 owner=rick type=file
           manpages        type=dir mode=0775 nlink=2 size=1024
           adb.man size=9473
           df.man  size=5263
           tar.man size=3324
           ..

HISTORY
     The mtree utility appeared in 4.3BSD-Reno.

BSD Experimental                 July 30, 1991                               3















































Typewritten Software • bear@typewritten.org • Edmonds, WA 98026