On Tue, Dec 19, 2006 at 10:19:42PM -0600, Greg Wallace wrote:
> On Tuesday, December 19, 2006 @ 5:15 AM, Joachim Schrod wrote:
>
> >Greg Wallace wrote:
> >> I would like to go through all files and subdirectories of a directory
> and
> >> set the group permissions equal to the owner permissions. Is there a
> >> command that will do this? This directory has thousands of files and
> >> hundreds of directories under it, so doing this manually isn't feasible.
>
> >find directory | while read f
> > do setfacl -m `getfacl "$f" | grep user | sed s/user/group/` "$f"
> > done
>
>
> > Joachim
>
> Joachim:
> Well, I tried this script but it didn't work. I put the above code into a
> file, hard coded /root/test for directory to point to a directory called
> test under root that had 4 files under it, and tried executing the script to
> see if it copied over the permissions. I got the following error when I
> tried to run it --
>
> ': not a valid identifier line 1: read : `f
To code above is bourne shell code and the new lines are intended.
You may replace the new lines with `;' ...
find directory | while read f ; do setfacl -m $(getfacl "$f" | grep user | sed
s/user/group/) "$f"; done
Or within a shell script
#!/bin/sh
find ${1+"$@"} | while read f
do
m=$(getfacl --omit-header "$f" 2> /dev/null | sed -n 's/user/group/p')
test -n "$m" || continue
setfacl -m $m "$f"
done
Werner
--
"Having a smoking section in a restaurant is like having
a peeing section in a swimming pool." -- Edward Burr
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]