tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Restrict mtree to specific directories
I have a small issue with mtree(8), that I am not quite sure how to fix
best.
I would like to create directory hierachies from mtree spec files, but
restrict this to selected hierachies (where the mtree files contain a
bit more).
Example:
mkdir /tmp/test && cd /tmp/test && mtree -f /etc/mtree/special -dqUW
Now I get this in /tmp/test:
drwxr-xr-x 3 root wheel 48 Jun 2 16:04 dev
drwxr-xr-x 13 root wheel 528 Jun 2 16:04 etc
drwxr-xr-x 2 root wheel 0 Jun 2 16:04 root
drwxr-xr-x 2 root wheel 0 Jun 2 16:04 sbin
drwxr-xr-x 9 root wheel 336 Jun 2 16:04 usr
drwxr-xr-x 14 root wheel 576 Jun 2 16:04 var
What if I want to restrict the created subdirectories to /tmp/test/var ?
Should be easy, there are -O onlypaths and -X exclude-file options to mtree.
The files are supposed to contain lines of fnmatch(3) patters, which are
evaluated with FNM_PATHNAME option against the to-be-created file/dir.
So in above example I could create a "onlyfile" containing something like:
./var
./var/*
./var/*/*
./var/*/*/*
./var/*/*/*/*
./var/*/*/*/*/*
or so I thought - but (a) it does not work and (b) I don't know how deep some
future mtree spec file will be below var.
Am I missing some easy trick? Anything obvious I did wrong (so it does not
work but should if I do it right)?
I am considering to add a variant of -O that specifies directory prefixes
and skips all files outside of one of the specified dirs, so my invocation
above would become:
mkdir /tmp/test && cd /tmp/test && \
mtree -f /etc/mtree/special -dqUW -D ./var
Martin
Home |
Main Index |
Thread Index |
Old Index