cpio and directory owner preservation behaviour
David Magda
dmagda at ee.ryerson.ca
Thu Sep 22 16:59:12 UTC 2011
On Thu, September 22, 2011 10:54, Olivier Cochard-Labbé wrote:
[...]
> [root at R3]/#(cd /usr/local/etc; find . -name ripd.conf -type f | cpio
> -dumpv /tmp/)
>
> The file owner and permission for ripd.conf is keept:
> [root at R3]/#ls -alh /tmp/quagga/ripd.conf
> -rw------- 1 quagga quagga 134B Sep 22 15:28 /tmp/quagga/ripd.conf
>
> But not the directory owner that is changed to root:wheel
> [root at R3]/#ls -alh /tmp | grep quagga
> drwxr-xr-x 2 root wheel 512B Sep 22 16:41 quagga
>
> Is a cpio bug ?
No it is not a bug, because the find(1) command will only print
"quagga/ripd.conf" to its output, and not "quagga/" as well. Since cpio(1)
only receives "quagga/ripd.conf", it will only put the information for
that item in the archive stream.
Try the following command:
# (cd /usr/local/etc; find quagga | cpio -dumpv /tmp/)
instead. This should grab quagga/ itself, in addition to its contents in
the archive stream.
If you want to know which items (files, directories, other) that cpio(1)
grab information on just run the find(1) without piping its output
anywhere. If you don't see the item of interest on a line of its own,
cpio(1) will not grab its metadata.
More information about the freebsd-stable
mailing list