[SATLUG] find

Daniel J. Givens daniel at rugmonster.org
Tue Apr 29 19:37:23 CDT 2008

travis+ml-satlug at subspacefield.org wrote:
> According to the find manpage:
>        find . -perm /220
>        find . -perm /u+w,g+w
>        find . -perm /u=w,g=w
>        All three of these commands do the same thing, but the first one uses the octal representation of the file mode, and  the
>        other  two  use the symbolic form.  These commands all search for files which are writable by either their owner or their
>        group.  The files don't have to be writable by both the owner and group to be matched; either will do.
> Doesn't this seem wrong to anyone?
> IMHO, it should work the same as chmod, which everyone is familiar
> with; namely, if you specify g+w, it means that group permissions
> contain at least write permission, and that g=w means that group
> permissions are exactly write (no group execute or group read).

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.

Executive Summary:
Using the following as an example:
-rw-r--r-- foo1
-rwxr-xr-x foo2
-rw-rw---- foo3

-perm <mode> : File's permission bits are exactly <mode>
	find . -perm 755
	matches foo2

-perm -<mode> : (At least) All of the permission bits mode are set for 
the file
	find . -perm -400
	matches foo1, foo2, foo3
	find . -perm -700
	matches foo2
	find . -perm -660
	matches foo1, foo3
-perm /<mode> : Any of the permission bits are set for the file
	find . -perm /777
	matches foo2
	find . -perm /444
	matches foo1, foo2, foo3
	find . -perm /060
	matches foo3

The last example is what your quote from the manpage applies to. find 
can certainly match permission patterns in the manner in which you're 
expecting it to, but sometimes, you want to find files where you only 
care about certain permissions and not others.

Hope this clears things up. I would be more than happy to explain further.


More information about the SATLUG mailing list