From aarnal at gmail.com Thu Jun 8 07:00:22 2006 From: aarnal at gmail.com (Alexis Arnal) Date: Thu, 8 Jun 2006 10:00:22 -0400 Subject: [caracas-pm] Problema con script para copiar archivos de un directorioa otro Message-ID: <97aa8b80606080700h3e954a29wb958f827ff7b1296@mail.gmail.com> Saludos, estoy teniendo un problemita con un script que hice para copiar archivos de un directorio a otro. El archivo file.txt contiene el nombre de los archivos a copiar Este es el script: #!/usr/bin/perl -w $org='/home/aarnal/pruebacopia/file.txt'; $dest='/home/aarnal/pruebacopia1/'; $i=1; open (ORIGEN,$org); $copy=; while($copy){ print "Copiando archivo: $copy\t Cantidad de archivos copiados: $i\n"; `cp $copy /home/aarnal/pruebacopia1`; } close (ORIGEN); El error que me da es el siguiente: cp: falta el fichero de destino Pruebe `cp --help' para m?s informaci?n. sh: line 1: /home/aarnal/pruebacopia1: is a directory Sin embargo cuando lo ejecuto con un oneliner funciona: perl -e '`cp file.txt /home/aarnal/pruebacopia1/`' Gracias por su atenci?n -- #-------------------- #!/usr/bin/perl -w # Ing. Alexis Arnal # GNU/Linux user: 411537 # Debian - Kernel 2.6.7-1-386 # CNE. Caracas - Venezuela #--------------------- use strict; print "No basta con alcanzar la sabidur?a, es necesario saber utilizarla\n"; print "Marco Tulio Cicer?n. 106 AC-43 AC. Escritor, orador y pol?tico romano\n"; print "http://www.proverbia.net"; #--------------------- From aarnal at gmail.com Thu Jun 8 07:07:52 2006 From: aarnal at gmail.com (Alexis Arnal) Date: Thu, 8 Jun 2006 10:07:52 -0400 Subject: [caracas-pm] Problema con script para copiar archivos de un directorioa otro In-Reply-To: <97aa8b80606080700h3e954a29wb958f827ff7b1296@mail.gmail.com> References: <97aa8b80606080700h3e954a29wb958f827ff7b1296@mail.gmail.com> Message-ID: <97aa8b80606080707y776d321au99cb5394c2b6dd39@mail.gmail.com> Disculpen encontr? un detalle en el c?digo anterior. Ahora es el sgte. #!/usr/bin/perl -w $org='/home/aarnal/pruebacopia/file.txt'; $i=1; open (ORIGEN,$org); while(){ print "Copiando archivo: $_\t Cantidad de archivos copiados: $i\n"; `cp $_ /home/aarnal/pruebacopia1/`; $i++; } close (ORIGEN); Sin embargo sigue dando el mismo error From fobispo at nic.ve Thu Jun 8 07:36:08 2006 From: fobispo at nic.ve (Francisco Obispo) Date: Thu, 08 Jun 2006 10:36:08 -0400 Subject: [caracas-pm] Problema con script para copiar archivos de un directorioa otro In-Reply-To: <97aa8b80606080700h3e954a29wb958f827ff7b1296@mail.gmail.com> References: <97aa8b80606080700h3e954a29wb958f827ff7b1296@mail.gmail.com> Message-ID: <448835D8.8050404@nic.ve> Hola Alexis,. Alexis Arnal wrote: > Saludos, estoy teniendo un problemita con un script que hice para > copiar archivos de un directorio a otro. > > El archivo file.txt contiene el nombre de los archivos a copiar > > Este es el script: > > #!/usr/bin/perl -w > $org='/home/aarnal/pruebacopia/file.txt'; > $dest='/home/aarnal/pruebacopia1/'; > $i=1; > > open (ORIGEN,$org); > $copy=; > > > Estas abriendo el archivo "/home/aarnal/pruebacopia/file.txt" luego est?s asignando el valor de lo que est? en la primera linea de ese archivo a $copy > while($copy){ > print "Copiando archivo: $copy\t Cantidad de archivos copiados: $i\n"; > `cp $copy /home/aarnal/pruebacopia1`; > Lo que tenga en la primera linea del archivo, se est? convirtiendo en el argumento del comando "cp" > } > > Aqu? est?s generando un loop infinito, debido a que el valor de $copy no var?a en el ciclo, > close (ORIGEN); > > El error que me da es el siguiente: > > cp: falta el fichero de destino > Pruebe `cp --help' para m?s informaci?n. > sh: line 1: /home/aarnal/pruebacopia1: is a directory > > Sin embargo cuando lo ejecuto con un oneliner funciona: > > perl -e '`cp file.txt /home/aarnal/pruebacopia1/`' > > Claro.. aqu? el primer argumento es el nombre del archivo > Gracias por su atenci?n > > Saludos From fobispo at nic.ve Thu Jun 8 07:37:53 2006 From: fobispo at nic.ve (Francisco Obispo) Date: Thu, 08 Jun 2006 10:37:53 -0400 Subject: [caracas-pm] Problema con script para copiar archivos de un directorioa otro In-Reply-To: <97aa8b80606080707y776d321au99cb5394c2b6dd39@mail.gmail.com> References: <97aa8b80606080700h3e954a29wb958f827ff7b1296@mail.gmail.com> <97aa8b80606080707y776d321au99cb5394c2b6dd39@mail.gmail.com> Message-ID: <44883641.1030205@nic.ve> me imagino que en ese archivo "file.txt" tienes una lista de archivos... para eso no necesitas un script de perl.. puedes hacerlo desde bash. for i in `cat /home/aarnal/pruebacopia/file.txt` do cp $i /home/aarnal/pruebacopia1/ done saludos Alexis Arnal wrote: > Disculpen encontr? un detalle en el c?digo anterior. Ahora es el sgte. > > #!/usr/bin/perl -w > > $org='/home/aarnal/pruebacopia/file.txt'; > $i=1; > > open (ORIGEN,$org); > > while(){ > print "Copiando archivo: $_\t Cantidad de archivos copiados: $i\n"; > `cp $_ /home/aarnal/pruebacopia1/`; > $i++; > } > > close (ORIGEN); > > Sin embargo sigue dando el mismo error > _______________________________________________ > caracas-pm mailing list > caracas-pm at pm.org > http://mail.pm.org/mailman/listinfo/caracas-pm > > > From aarnal at gmail.com Thu Jun 8 07:52:50 2006 From: aarnal at gmail.com (Alexis Arnal) Date: Thu, 8 Jun 2006 10:52:50 -0400 Subject: [caracas-pm] Problema con script para copiar archivos de un directorioa otro In-Reply-To: <97aa8b80606080707y776d321au99cb5394c2b6dd39@mail.gmail.com> References: <97aa8b80606080700h3e954a29wb958f827ff7b1296@mail.gmail.com> <97aa8b80606080707y776d321au99cb5394c2b6dd39@mail.gmail.com> Message-ID: <97aa8b80606080752q8087c74s7b3934d5fdf4c2a3@mail.gmail.com> Ya encontr? la soluci?n, el problema era un enter que ten?a la variable $_ while(){ chomp($_); print "Copiando archivo: $_\t Cantidad de archivos copiados: $i\n"; `cp $_ /home/aarnal/pruebacopia1/`; $i++; } 2006/6/8, Alexis Arnal : > Disculpen encontr? un detalle en el c?digo anterior. Ahora es el sgte. > > #!/usr/bin/perl -w > > $org='/home/aarnal/pruebacopia/file.txt'; > $i=1; > > open (ORIGEN,$org); > > while(){ > print "Copiando archivo: $_\t Cantidad de archivos copiados: $i\n"; > `cp $_ /home/aarnal/pruebacopia1/`; > $i++; > } > > close (ORIGEN); > > Sin embargo sigue dando el mismo error > -- #-------------------- #!/usr/bin/perl -w # Ing. Alexis Arnal # GNU/Linux user: 411537 # Debian - Kernel 2.6.7-1-386 # CNE. Caracas - Venezuela #--------------------- use strict; print "No basta con alcanzar la sabidur?a, es necesario saber utilizarla\n"; print "Marco Tulio Cicer?n. 106 AC-43 AC. Escritor, orador y pol?tico romano\n"; print "http://www.proverbia.net"; #--------------------- From jrey at linuxsis.net Thu Jun 8 08:35:00 2006 From: jrey at linuxsis.net (Jose Rey) Date: Thu, 08 Jun 2006 11:35:00 -0400 Subject: [caracas-pm] Problema con script para copiar archivos de un directorioa otro In-Reply-To: <97aa8b80606080700h3e954a29wb958f827ff7b1296@mail.gmail.com> References: <97aa8b80606080700h3e954a29wb958f827ff7b1296@mail.gmail.com> Message-ID: <448843A4.3020903@linuxsis.net> Como dijo francisco el programa tiene un error l?gico, pues estas copiando el archivo cuyo nombre se encuentra en la primera l?nea de '/home/aarnal/pruebacopia/file.txt', si quieres copiar archivos desde perl, sin enrrollarte la vida puedes utilizar File::Copy: ------------------------ #!/usr/bin/perl -w use File::Copy; $org='/home/aarnal/pruebacopia/file.txt'; $dest='/home/aarnal/pruebacopia1/file.txt'; copy( $org, $dest ) or die("Fallo la copia"); ------------------------ Ademas el modulo permite especificar el tama?o de los buffers de copia y provee algunas otras funciones ?tiles. Saludos Jose Luis Rey Alexis Arnal wrote: >Saludos, estoy teniendo un problemita con un script que hice para >copiar archivos de un directorio a otro. > >El archivo file.txt contiene el nombre de los archivos a copiar > >Este es el script: > >#!/usr/bin/perl -w >$org='/home/aarnal/pruebacopia/file.txt'; >$dest='/home/aarnal/pruebacopia1/'; >$i=1; > >open (ORIGEN,$org); >$copy=; > > >while($copy){ > print "Copiando archivo: $copy\t Cantidad de archivos copiados: $i\n"; > `cp $copy /home/aarnal/pruebacopia1`; > } > >close (ORIGEN); > >El error que me da es el siguiente: > >cp: falta el fichero de destino >Pruebe `cp --help' para m?s informaci?n. >sh: line 1: /home/aarnal/pruebacopia1: is a directory > >Sin embargo cuando lo ejecuto con un oneliner funciona: > >perl -e '`cp file.txt /home/aarnal/pruebacopia1/`' > >Gracias por su atenci?n > > > > From joseparrella at cantv.net Thu Jun 8 08:44:58 2006 From: joseparrella at cantv.net (Jose Parrella) Date: Thu, 8 Jun 2006 11:44:58 -0400 Subject: [caracas-pm] Problema con script para copiar archivos de un directorioa otro In-Reply-To: <97aa8b80606080707y776d321au99cb5394c2b6dd39@mail.gmail.com> References: <97aa8b80606080700h3e954a29wb958f827ff7b1296@mail.gmail.com> <97aa8b80606080707y776d321au99cb5394c2b6dd39@mail.gmail.com> Message-ID: <20060608114458.79a5c297@localhost.localdomain> On Thu, 8 Jun 2006 10:07:52 -0400 "Alexis Arnal" wrote: > #!/usr/bin/perl -w > > $org='/home/aarnal/pruebacopia/file.txt'; > $i=1; > > open (ORIGEN,$org); > > while(){ > print "Copiando archivo: $_\t Cantidad de archivos copiados: $i\n"; > `cp $_ /home/aarnal/pruebacopia1/`; > $i++; > } > > close (ORIGEN); Agrega un chomp; debajo del while. Todos tus nombres de archivo tienen un caracter de nueva l?nea (\n) al final, y me imagino que cp se toma eso como un intro. En todo caso, el chomp lo resuelve. Otra forma de escribir tu programa en Perl puede ser: #!/usr/bin/perl -n chomp; `cp $_ /home/aarnal/pruebacopia1/`; Y en bash, como dijo Francisco, for archivo in `cat file.txt`; do cp $archivo /home/aarnal/pruebacopia1/; done Usa la que te haga sentir m?s c?modo, pues al final haces la misma llamada de sistema a cp. Lo que me queda por averiguar (hola Ernesto) es si cat puede ser m?s r?pido que el while (<>) de Perl en archivos grandes. Jose From aarnal at gmail.com Thu Jun 8 12:37:56 2006 From: aarnal at gmail.com (Alexis Arnal) Date: Thu, 8 Jun 2006 15:37:56 -0400 Subject: [caracas-pm] caracas-pm Digest, Vol 26, Issue 1 In-Reply-To: References: Message-ID: <97aa8b80606081237g36718558xf5d1de412b3ea900@mail.gmail.com> Gracias a todos por sus sugerencias, efectivamente el problema que ten?a era el chomp tal como lo hab?a comentado en uno de los correos que me autorespond?, sin embargo me ha ayudado a ver otras alternativas mostradas por ustedes, voy a tratar de evaluarlas a ver cual es m?s eficiente ya que necesito hacer unos respaldos de alrededor de 100Gb a un disco USB y el proceso dura cas? 24horas. Tambi?n sirvi? para darle un poco de tr?fico a esta lista Gracias nuevamente From agazso at ius.cc Fri Jun 9 13:14:34 2006 From: agazso at ius.cc (=?ISO-8859-1?Q?Andr=E9s_Gazs=F3?=) Date: Fri, 09 Jun 2006 16:14:34 -0400 Subject: [caracas-pm] =?iso-8859-1?q?Pr=F3xima_reuni=F3n_de_los=09Mongers?= In-Reply-To: <20060608114458.79a5c297@localhost.localdomain> References: <97aa8b80606080700h3e954a29wb958f827ff7b1296@mail.gmail.com> <97aa8b80606080707y776d321au99cb5394c2b6dd39@mail.gmail.com> <20060608114458.79a5c297@localhost.localdomain> Message-ID: <1149884075.25501.39.camel@localhost.localdomain> Estimados Mongers: Les escribo para porponer el pr?ximo tema de charla, concretamente PerlMagick (Image::Magick). Por otro lado propongo continuar con el tema de las variables impl?citas, concretamente las tulizadas en las expresiones regulares. Sin m?s les saluda, Vader. From emhn at telcel.net.ve Thu Jun 15 17:29:05 2006 From: emhn at telcel.net.ve (=?ISO-8859-1?Q?Ernesto_Hern=E1ndez-Novich?=) Date: Thu, 15 Jun 2006 20:29:05 -0400 Subject: [caracas-pm] =?iso-8859-1?q?Pr=F3xima_reuni=F3n_de_los_Mongers?= In-Reply-To: <1149884075.25501.39.camel@localhost.localdomain> References: <97aa8b80606080700h3e954a29wb958f827ff7b1296@mail.gmail.com> <97aa8b80606080707y776d321au99cb5394c2b6dd39@mail.gmail.com> <20060608114458.79a5c297@localhost.localdomain> <1149884075.25501.39.camel@localhost.localdomain> Message-ID: <4491FB51.2010004@telcel.net.ve> Andr?s Gazs? wrote: > Estimados Mongers: > > Les escribo para porponer el pr?ximo tema de charla, concretamente > PerlMagick (Image::Magick). > > Por otro lado propongo continuar con el tema de las variables > impl?citas, concretamente las tulizadas en las expresiones regulares. Nos veremos el s?bado 17 en el lugar de costumbre. Ya tengo un programita gracioso con Image::Magick. -- Ernesto Hern?ndez-Novich - On Linux 2.6.16 i686 - Unix: Live free or die! Geek by nature, Linux by choice, Debian of course. If you can't aptitude it, it isn't useful or doesn't exist. GPG Key Fingerprint = 438C 49A2 A8C7 E7D7 1500 C507 96D6 A3D6 2F4C 85E3