[vox-tech] Shell Scripting Question

Tim Riley vox-tech@lists.lugod.org
Fri, 06 Jun 2003 10:37:08 -0700


Richard Crawford wrote:

> I have a script to chmod all of the files of a given name to 777, no
> matter where they lie in the directory tree:
>
> ################################################
>
> find . -name $1 -print | while read i do
>   chmod 777 $i
>   echo "Modified: $i"
> done
>
> ################################################
>
> Now what I need it to do is to go into only those directories called
> "messages" and do the same thing to files in those directories.

"Directories called messages" means there are many directories
called "messages" like "/usr/messages", "/usr2/messages", ... Right?

find /usr/messages -name $1 -print | while read i do
  chmod 777 $i
  echo "Modified: $i"
done

find /usr2/messages -name $1 -print | while read i do
  chmod 777 $i
  echo "Modified: $i"
done

>  I tried
> passing "messages/*" to $1 but, of course, that didn't work.  I've also
> tried adding a conditional, "if (grep "\/messages\/" $i)", to the script,
> but that, of course, didn't work either.
>
> I've Googled for various scripting tutorials, but none of them seem to
> cover this particular issue, which is kind of time-sensitive.
>
> Any suggestions would be greatly appreciated!
>
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech