NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: RFI: mtree -n option

On Tue, Aug 02, 2011 at 01:09:38PM +1000, Malcolm Herbert wrote:
  | (Apologies if this is not the correct forum - I'm not sure who is 
  | responsible for mtree)
  | At the moment, if I merely want to see the differences between two
  | directory trees or compare to an mtree spec I can't tell mtree not to
  | make any modifications to it. I can tell it not to update permissions
  | and attributes with the -W flag, but mtree still insists on creating
  | missing directories.
  | For example, assuming the following directory trees:
  |   new
  |   new/blah
  |   new/foo/
  |   old
  |   old/bar/
  |   old/blah
  |   old/foo/empty
  | old/blah and new/blah differ in their content, so MD5 checks will fail
  | If I want to compare these, I'd run the following:
  |   tiu[/data/scratch] 134v>: mtree -c -p old -K md5 | mtree -Wu -p new -K md5
  |   blah:   md5 (0x5149d403009a139c7e085405ef762e1a, 
  |   missing: ./bar (created)
  |   missing: ./foo/empty
  | ... but then mtree will have created new/bar for me, as above.
  | So, can we add a "don't to anything" option to mtree?  -n appears to be
  | available and would match expected behaviour for other tools ...

Try it without -u in the mtree that you're using to check with.
        mtree -c -p old -K md5 | mtree -W -p new -K md5

As an aside, I'd pipe the output of the first mtree through -C -K md5
to convert it to a format that I find saner to use especially
if you're going to save the output of the former or process it
with other tools.  E.g,
        > mtree -c -p old -K md5 | mtree -C -K md5
        . type=dir uid=1001 gid=0 mode=0755 nlink=4 time=1312627733.236059515 
        ./blah type=file uid=1001 gid=0 mode=0644 nlink=1 size=4 
time=1312627730.115126094 md5=814fa5ca98406a903e22b43d9b610105 flags=none
        ./bar type=dir uid=1001 gid=0 mode=0755 nlink=2 
time=1312627724.939881485 flags=none
        ./foo type=dir uid=1001 gid=0 mode=0755 nlink=2 
time=1312627736.603895490 flags=none
        ./foo/empty type=file uid=1001 gid=0 mode=0644 nlink=1 size=0 
time=1312627736.603862649 md5=d41d8cd98f00b204e9800998ecf8427e flags=none

(You need to pass the same -K flags to the -C invocation otherwise
mtree will strip the keywords :)


Attachment: pgpIYZK3vJrtu.pgp
Description: PGP signature

Home | Main Index | Thread Index | Old Index