Annotation of 43BSDReno/usr.sbin/mtree/mtree.1, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1989, 1990 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted provided
                      5: .\" that: (1) source distributions retain this entire copyright notice and
                      6: .\" comment, and (2) distributions including binaries display the following
                      7: .\" acknowledgement:  ``This product includes software developed by the
                      8: .\" University of California, Berkeley and its contributors'' in the
                      9: .\" documentation or other materials provided with the distribution and in
                     10: .\" all advertising materials mentioning features or use of this software.
                     11: .\" Neither the name of the University nor the names of its contributors may
                     12: .\" be used to endorse or promote products derived from this software without
                     13: .\" specific prior written permission.
                     14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     17: .\"
                     18: .\"     @(#)mtree.1    5.7 (Berkeley) 7/24/90
                     19: .\"
                     20: .Dd July 24, 1990
                     21: .Dt MTREE 8
                     22: .Os BSD 4.4
                     23: .Sh NAME
                     24: .Nm mtree
                     25: .Nd map a directory hierarchy
                     26: .Sh SYNOPSIS
                     27: .Nm mtree
                     28: .Op Fl cderux
                     29: .Op Fl f Ar spec
                     30: .Op Fl p Ar path
                     31: .Sh DESCRIPTION
                     32: .Nm Mtree
                     33: compares a directory hierarchy against a specification for a
                     34: directory hierarchy.
                     35: By default, the specification is read from the standard input.
                     36: .Nm Mtree
                     37: verifies that the tree rooted in the current directory matches the
                     38: specification.
                     39: .Pp
                     40: Messages are written to standard output for any files whose
                     41: characteristics do not match those of the specification, or which are
                     42: missing from either the specification or the tree.
                     43: .Pp
                     44: The options are as follows:
                     45: .Tp Fl c
                     46: Print a specification for the tree to standard output.
                     47: .Tp Fl d
                     48: Ignore everything except directory type files.
                     49: .Tp Fl e
                     50: Don't object to files that are in the tree but not in the specification.
                     51: .Tp Fl f
                     52: Read the specification from
                     53: .Ar file  ,
                     54: instead of from standard input.
                     55: .Tp Fl p
                     56: Traverse the tree rooted in
                     57: .Ar path  ,
                     58: instead of the current directory.
                     59: .Tp Fl r
                     60: Remove any files in the tree that are not described in the
                     61: specification.
                     62: .Tp Fl u
                     63: Modify the owner, group, and permissions of existing files to match
                     64: the specification, as well as create any missing directories.
                     65: Owner, group, and permissions must all be specified for missing
                     66: directories to be created.
                     67: .Tp Fl x
                     68: Don't descend below any mount points.
                     69: .Tp
                     70: .Pp
                     71: Specifications are mostly composed of ``keywords'', i.e. strings that
                     72: that specify values relating to files.
                     73: No keywords have default values, and if a keyword has no set value no
                     74: checks based on it are performed.
                     75: .Pp
                     76: Currently supported keywords are as follows:
                     77: .Tw Cm
                     78: .Tp Cm cksum
                     79: The checksum of the file using the algorithm specified by
                     80: the program
                     81: .Xr cksum  1  .
                     82: .Tp Cm ignore
                     83: Causes the hierarchy below the file to be ignored.
                     84: .Tp Cm group
                     85: The group of the file; may be either numeric or symbolic.
                     86: .Tp Cm mode
                     87: The current file's permissions as an absolute (octal) or symbolic
                     88: value (see
                     89: .Xr chmod  1  ) .
                     90: .Tp Cm nlink
                     91: The number of hard links the file is expected to have.
                     92: .Tp Cm owner
                     93: The owner of the file; may be either numeric or symbolic.
                     94: .Tp Cm size
                     95: The size, in bytes, of the file.
                     96: .Tp Cm link
                     97: The file a symbolic link is expected to reference.
                     98: .Tp Cm time
                     99: The last modification time of the file.
                    100: .Tp Cm type
                    101: The type of the file; may be set to any one of the following:
                    102: .Tw Cm
                    103: .Tp Cm block
                    104: block special device
                    105: .Tp Cm char
                    106: character special device
                    107: .Tp Cm dir
                    108: directory
                    109: .Tp Cm fifo
                    110: fifo
                    111: .Tp Cm file
                    112: regular file
                    113: .Tp Cm link
                    114: symbolic link
                    115: .Tp Cm socket
                    116: socket
                    117: .Tp
                    118: .Tp
                    119: .Pp
                    120: There are four types of lines in a specification.
                    121: .Pp
                    122: The first type of line sets a ``global'' value for a keyword, and
                    123: consists of a leading ``/set'' followed by whitespace, followed by
                    124: sets of keyword/value pairs, separated by whitespace.
                    125: Keyword/value pairs consist of a keyword, followed by a equals sign
                    126: (``=''), followed by a value, without intervening whitespace.
                    127: Once a keyword has been set, its value remains unchanged until either
                    128: set again or unset.
                    129: .Pp
                    130: The second type of line unsets keywords and consists of a leading
                    131: ``/unset'', followed by whitespace, followed by one or more keywords,
                    132: separated by whitespace.
                    133: .Pp
                    134: The third type of line is a file specification and consists of a file
                    135: name, followed by whitespace, followed by zero or more whitespace
                    136: separated keyword/value pairs.
                    137: The file name may be preceded by any number of whitespace characters.
                    138: The file name may contain any of the standard file name matching
                    139: characters (``['', ``]'', ``?'' or ``*''), in which case files
                    140: in the hierarchy will be associated with the first pattern that
                    141: they match.
                    142: .Pp
                    143: Each of the keyword/value pairs consist of a keyword, followed by an
                    144: equals sign (``=''), followed by the keyword's value, without intervening
                    145: whitespace.
                    146: These values override, without changing, the global value of the
                    147: corresponding keyword.
                    148: .Pp
                    149: All paths are relative.
                    150: Specifying a directory will cause subsequent files to be searched
                    151: for in that directory hierarchy.
                    152: Which brings us to the last type of line in a specification: a line
                    153: containing only the string
                    154: .Dq Nm \&..
                    155: causes the current directory
                    156: path to ascend one level.
                    157: .Pp
                    158: Empty lines and lines whose first non-whitespace character is a hash
                    159: mark (``#'') are ignored.
                    160: .Pp
                    161: .Nm Mtree
                    162: exits with a status of 0 on success and >0 if an error occurred or the
                    163: tree did not match the specification.
                    164: .Sh FILES
                    165: .Dw /etc/mtree
                    166: .Di L
                    167: .Dp Pa /etc/mtree
                    168: system specification directory
                    169: .Dp
                    170: .Sh SEE ALSO
                    171: .Xr chmod 1 ,
                    172: .Xr chown 1 ,
                    173: .Xr chgrp 1 ,
                    174: .Xr cksum 1 ,
                    175: .Xr find 1 ,
                    176: .Xr stat 2 ,
                    177: .Xr fts 3 ,
                    178: .Xr mkproto 8
                    179: .Sh BUGS
                    180: The
                    181: .Cm cksum
                    182: keyword is not yet implemented.
                    183: .Pp
                    184: The
                    185: .Cm time
                    186: keyword should be specifiable in human readable terms.
                    187: .Sh EXAMPLE
                    188: .Ds I
                    189: #        fs: /a/staff/rick/mybin
                    190: #        by: rick
                    191: #      date: Fri May 25 12:26:57 1990
                    192: .sp
                    193: /set group=staff mode=0555 nlink=1 owner=rick type=file
                    194: [              nlink=2 size=6144
                    195: adb            size=53248
                    196: df             group=operator mode=02555 size=20480
                    197: ps             group=kmem mode=02555 size=54272
                    198: rcp            owner=root mode=04555 size=79872
                    199: test           nlink=2 size=6144
                    200: .sp
                    201: /set group=wheel mode=0444 nlink=1 owner=rick type=file
                    202: manpages       type=dir mode=0775 nlink=2 size=1024
                    203: adb.man        size=9473
                    204: df.man size=5263
                    205: tar.man        size=3324
                    206: \&..
                    207: .De
                    208: .Sh HISTORY
                    209: 4.3 Reno BSD.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.