find(1) man-page/find error with -x/-xdev

Giorgos Keramidas keramida at freebsd.org
Sun Jul 3 22:24:50 GMT 2005


On 2005-07-03 15:24, mdff <nospam at mgedv.net> wrote:
> as documented on 5.4-RELEASE, there's a divergence between
> man 1 find and the command itself and the option "-x" a.k.a. "-xdev".
> although "-xdev" is "deprecated", it's the only working one ;-)
>
> $ man 1 find
> <...snip...>
>      -x      Prevent find from descending into directories that have a
> device
>              number different than that of the file from which the descent
>              began.
>
>              This option is equivalent to the deprecated -xdev primary.
> <...snip...>
>
> $ find . -x
> find: -x: unknown option
>
> $ find . -xdev
> <...works...>

The two (-x and -xdev) are slightly different, but the small difference
is very important.  The -x option is a find(1) option, while -xdev is an
"expression predicate" or "primary" as the description of -x calls it.
Options should appear *before* any path names, while "primaries" should
appear *after* path names.  This means that these two are valid:

	find -x .
	find . -xdev

But these are not:

	find . -x
	find -xdev .

Bearing this in mind, do you still think that the manpage is wrong?

If yes, suggestions to improve the wording of the description of the -x
option are certainly welcome.

- Giorgos



More information about the freebsd-bugs mailing list