[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