Thank you so much.. That was helpful.  I feel it looks more  perl like
solution than calling unix OS cmd.

Can you pl.help  me how to get chmod cmd  that I am trying to set  run
on those directories. I was thinking of using  system (" find ... -
exec chmod  755 {} \; ")

pad


On Feb 8, 6:24 am, [EMAIL PROTECTED] (John W. Krahn) wrote:
> Pad wrote:
> > In my script, I am trying to use find cmd (Solaris 8 OS)   to change
> > the permission and ownership of a file. I don't know how to get it
> > working as I get 'find incomplete statement'.
>
> > To make things simpler, here is a small modified snippet of my code..
>
> > #!/bin/perl
> > use warnings;
>
> > my $tagname="XYZ";
> > my $user="orauser";
> > my $seq=01;
>
> > system( "echo  find  /${tagname}_$seq/oradata/$tagname -user 29334 -
> > exec chown $user {} \\\; ");
>
> > output:
> > find /XYZ_01/oradata/XYZ -user 29334 -exec chown orauser {}  ;
>
> > What I really wanted is:
>
> > find /XYZ_01/oradata/XYZ -user 29334 -exec chown orauser {}  \;
>
> > (please notice '\'  just before semi-colon).
>
> > I used 'echo' statement just to show you what is the problem. In
> > reality, I wanted to use find cmd to change the permission say,
>
> > system( " find  /${tagname}_$seq/oradata/$tagname -user 29334 -exec
> > chown $user {} \\\; ");
>
> > Please let me know why the escape character does n't work for me? Any
> > help to resolve the problem is much appreciated.
>
> This may work better (UNTESTED):
>
> #!/bin/perl
> use warnings;
> use strict;
>
> use File::Find;
>
> my $tagname = 'XYZ';
> my $user    = getpwnam 'orauser';
> my $seq     = '01';
>
> find sub {
>      my ( $uid, $gid ) = ( lstat )[ 4, 5 ];
>      return if $uid != 29334;
>      # If 29334 is the user *name* and not the UID
>      # then do this instead:
>      #return if getpwuid( $uid ) ne '29334';
>      chown $user, $gid, $_
>          or warn "Cannot change owner of file '$File::Find::name' $!";
>      }, "/${tagname}_$seq/oradata/$tagname";
>
> __END__
>
> John
> --
> Perl isn't a toolbox, but a small machine shop where you
> can special-order certain sorts of tools at low cost and
> in short order.                            -- Larry Wall


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to