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/