El día 20 de junio de 2013 17:55, Julian Perconti <vh1...@yahoo.com.ar> escribió: > ----- Mensaje original ----- >> De: fernando sainz <fernandojose.sa...@gmail.com> >> Para: Julian Perconti <vh1...@yahoo.com.ar> >> CC: >> Enviado: jueves, 20 de junio de 2013 12:35 >> Asunto: Re: [OT] Sobre script bash >> >> El día 20 de junio de 2013 16:46, Julian Perconti >> <vh1...@yahoo.com.ar> escribió: >>> Saludos, >>> Tengo el siguiente script basico para migrar permisos: >>> # BOF >>> #!/bin/bash >>> j=0 >>> echo "ID del GRUPO a buscar:" >>> read gida >>> echo "ID del GRUPO por el cual reemplazar a los que >>> se encuentren:" >>> read gidn >>> for i in `find $pwd -gid $gida -print0 | xargs -0 chgrp >> >> ¿Este salto de linea lo ha hecho el correo supongo? así estaría mal. >> >> veo algo extraño en el xargs, por defecto recibe cada valor devuelto >> por el find, no entiendo por que le pasas $i >> >> S2. >> >>> $gidn "$i"`; do >>> let j=j+1 >>> done >>> echo $j 'reemplazos' >>> #EOF >> >> >> >> >>> En si el script, funciona bien, es decir, los permisos se >>> cambian según los id proporcionados; el problema es que me arroja el >> siguiente >>> error: >>> chgrp: cannot access `': No such file or directory >>> Y el contador me da siempre 0. >>> Probé de escribirlo de formas distintas, por ejemplo >>> meter la salida en un tmp y luego cat tmp, etc.. >>> Alguna idea? >>> Aclaro que no soy programador ni mucho menos, asique toda >>> sugerencia/critica/mejora es bienvenida! >>> Gracias de antemano! >>> >>> >>> -- >>> To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org >>> with a subject of "unsubscribe". Trouble? Contact >> listmas...@lists.debian.org >>> Archive: >> http://lists.debian.org/1371739576.91232.yahoomail...@web160205.mail.bf1.yahoo.com >>> >> > > Respondo a la lista: > > Bueno efectivamente le saque "$i" y el error desapareció pero sigue > apareciendo otro: > > chgrp: cannot dereference > `./.pulse/0494f201138428357ab0646c51ada1e2-runtime': No such file or directory > > Y la salida de sh -x: (antes de quitarle $i) > > root@debian:/home/julian# sh -x migraperm > + j=0 > + echo ID del GRUPO a buscar: > ID del GRUPO a buscar: > + read gida > 1000 > + echo ID del GRUPO por el cual reemplazar a los que se encuentren: > ID del GRUPO por el cual reemplazar a los que se encuentren: > + read gidn > 0 > + find -gid 1000 -print0 > + xargs -0 chgrp 0 > chgrp: cannot access `': No such file or directory > chgrp: cannot dereference > `./.pulse/0494f201138428357ab0646c51ada1e2-runtime': No such file or directory > + echo 0 reemplazos > 0 reemplazos > > Sin embargo algo esta mal hecho y no me doy cuenta porque el contador sigue > dando 0: > > root@debian:/home/julian# ./migraperm > ID del GRUPO a buscar: > 0 > ID del GRUPO por el cual reemplazar a los que se encuentren: > 1000 > 0 reemplazos > > El script quedó asi: > > #!/bin/bash > j=0 > echo "ID del GRUPO a buscar:" > read gida > echo "ID del GRUPO por el cual reemplazar a los que se encuentren:" > read gidn > > for i in `find $pwd -gid $gida -print0 | xargs -0 chgrp $gidn`; > do > let j=j+1 > done > echo $j 'reemplazos' > > Muchas gracias por sus prontas respuestas! >
Creo que es un error de concepto. la salida del `find.....| xargs ...` va a estar vacía. Prueba a ejecutarlo solo. S2. -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/CAGw=rhhnv1c0j68sre4eirxk9llz8rhemtc6p9vvvxkp7_z...@mail.gmail.com