The OSX (and therefore BSD) version of the find man page states the following:
-d Cause find to perform a depth-first traversal, i.e., directories
are visited in post-order and all entries in a directory will
be acted on before the directory itself. By default, find visits
directories in pre-order, i.e., before their contents. Note,
the default is not a breadth-first traversal.
This option is equivalent to the -depth primary of IEEE Std
1003.1-2001 (``POSIX.1''). The -d option can be useful when find
is used with cpio(1) to process files that are contained in
directories with unusual permissions. It ensures that you have
write permission while you are placing files in a directory,
then sets the directory's permissions as the last thing.
The last sentence explains why, somewhat better???
The purpose of the -depth switch is to force find to go deep in every directory it finds until it hits the "leaf nodes", which it will then print.
NOTE: The -depth forces sub-directories to be processed before their parents.
By utilizing the -depth switch, you're guaranteeing that find will not get tripped up when carrying parent directories forward to the cpio command which may be overly restrictive, and not allow for lower level directories to get created due to your userid not being allowed full read/execute privileges.
- -depth option (really a criterion that is always true) forces the output to be depth-first - that is, files first and then the directories containing them. This helps when the directories have restrictive permissions, and restoring the directory first could prevent the files from restoring at all (and would change the time stamp on the directory in any case). Normally, find returns the directory first, before any of the files in that directory.
References