[SATLUG] find
Daniel J. Givens
daniel at rugmonster.org
Tue Apr 29 22:15:27 CDT 2008
Bruce Dubbs wrote:
> Daniel J. Givens wrote:
>
>> You're forgetting the point of the / before the permissions. If you
>> look in the manpage above the section you referenced for the -perm
>> option, you'll see what I mean.
>
> I don't know where you found the / before the permissions. It should be
> a + and I've never seen anything different.
Check your manpage. We're talking about Linux and GNU findutils. These
have been around for at least the several years since I started using find.
From find(1) on my Fedora 8 and CentOS 5.1 boxes, as well as,
http://www.linuxcommand.org/man_pages/find1.html
-perm mode
File’s permission bits are exactly mode (octal or symbolic). Since
an exact match is required, if you want to use this form
for symbolic modes, you may have to specify a rather complex
mode string. For example ’-perm g=w’ will only match files
which have mode 0020 (that is, ones for which group write per-
mission is the only permission set). It is more likely that you
will want to use the ’/’ or ’-’ forms, for example ’-perm -g=w’,
which matches any file with group write permission. See the
EXAMPLES section for some illustrative examples.
-perm -mode
All of the permission bits mode are set for the file. Symbolic
modes are accepted in this form, and this is usually the way in
which would want to use them. You must specify ’u’, ’g’ or ’o’
if you use a symbolic mode. See the EXAMPLES section for some
illustrative examples.
-perm /mode
Any of the permission bits mode are set for the file. Symbolic
modes are accepted in this form. You must specify ’u’, ’g’ or
’o’ if you use a symbolic mode. See the EXAMPLES section for
some illustrative examples. If no permission bits in mode are
set, this test currently matches no files. However, it will
soon be changed to match any file (the idea is to be more con-
sistent with the behaviour of perm -000).
-perm +mode
Deprecated, old way of searching for files with any of the per-
mission bits in mode set. You should use -perm /mode instead.
Trying to use the ’+’ syntax with symbolic modes will yield sur-
prising results. For example, ’+u+x’ is a valid symbolic mode
(equivalent to +u,+x, i.e. 0111) and will therefore not be eval-
uated as -perm +mode but instead as the exact mode specifier
-perm mode and so it matches files with exact permissions 0111
instead of files with any execute bit set. If you found this
paragraph confusing, you’re not alone - just use -perm /mode.
This form of the -perm test is deprecated because the POSIX
specification requires the interpretation of a leading ’+’ as
being part of a symbolic mode, and so we switched to using ’/’
instead.
> BTW, in
>
> find . -perm +022
>
> The . is redundant as it is the default. I know it is in the man page.
Habit on my part. I'm used to specifying another path.
More information about the SATLUG
mailing list