RE: findtar
La opción -exec trata una a una los resultados de find por eso cuando ejecuto find dir-origen -name *.pdf -exec tar -zcvf resultado.tgz {} \; Finalmente genera el archivo resultado.tgz pero que solo contiene el utlimo archivo encontrado por find. Lo siguiente funciona muy bien incluso con archivos cuyos nombres tienene espacios. find -name '*.pdf' | tar --files-from /dev/stdin -cvf foo.tar find -exec para commandos mover cp rm funciona muy bien pero para un comando que debe actuar sobre todo el resultado de la busqueda de una ves se recomienda xargs pero aun asi no me empaqueta los archivos cuyos nombre tienene un espacio en blanco. ATTE JCArlos -Mensaje original- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de Aldrin Martoq Enviado el: martes, 02 de diciembre de 2008 11:10 Para: Discusion de Linux en Castellano Asunto: Re: findtar On Tue, 2008-12-02 at 09:45 -0300, Juan Carlos Rojas wrote: Hola listeros generalmente utilizo la potencia de find en conjunto con tar sin problemas pero justo ahora me encontre con que existen algunos archivos cuyos nombres tienen estan separados por espacios en blanco. Al realizar la combinación find |xargs tar No me empaqueta los archivos cuyos nombres estan separados por espacios en blanco . me arroja tar: 2008: No se puede stat: No existe el fichero o el directorio tar: -: No se puede stat: No existe el fichero o el directorio Lo que sucede es que separa el nombre del archivo en tantas partes como palabras contenga su nombre No debes usar xargs: te puedes topar con el largo maximo del buffer de la linea de comandos. Usa find -exec, por ejemplo: find -name '*.pdf' -exec tar A foo.tar {} \; Ahora, estuve leyendo el manual y existe la opcion -T en tar. Algo como esto: find -name '*.pdf' | tar --files-from /dev/stdin -cvf foo.tar -- Aldrin Martoq [EMAIL PROTECTED] http://aldrinvideopodcast.podshow.com/
Re: findtar
Juan Carlos Rojas escribió: find -exec para commandos mover cp rm funciona muy bien Cuando quieres borrar archivos, mejor que -exec rm es find -delete -- Alvaro Herrera Developer, http://www.PostgreSQL.org/ The problem with the future is that it keeps turning into the present (Hobbes)
Re: findtar
On 2008-12-03, Juan Carlos Rojas [EMAIL PROTECTED] wrote: La opción -exec trata una a una los resultados de find por eso cuando ejecuto find dir-origen -name *.pdf -exec tar -zcvf resultado.tgz {} \; Finalmente genera el archivo resultado.tgz pero que solo contiene el utlimo archivo encontrado por find. Holas: OJO, \ no es lo mismo que + (por eso le decia que utilizar +) $ find . -name '*pdf' -exec tar -zcvf resultado.tgz {} + ./websphere-integration-guide.pdf ./IntellinX User Guide.pdf ./IntellinX Implementation Guidelines_v1_5.pdf ./Analisis_ de_ Galletas_informe_tecnico.pdf ./ds_host_dlp.pdf $ tar tzf resultado.tgz ./websphere-integration-guide.pdf ./IntellinX User Guide.pdf ./IntellinX Implementation Guidelines_v1_5.pdf ./Analisis_ de_ Galletas_informe_tecnico.pdf ./ds_host_dlp.pdf Saludos -- ...la palabra Dios no es más que la expresión y producto de la debilidad humana, y la Biblia una colección de leyendas honorables pero todavía primitivas que son de todos modos bastante infantiles. A. Einstein GTALK/MSN:carlos.sepulveda[at]gmail.com http://carlos.sepulveda.googlepages.com/
RE: findtar
-Mensaje original- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de Aldrin Martoq On Tue, 2008-12-02 at 09:45 -0300, Juan Carlos Rojas wrote: No debes usar xargs: te puedes topar con el largo maximo del buffer de la linea de comandos. Usa find -exec, por ejemplo: find -name '*.pdf' -exec tar A foo.tar {} \; On Wed, 2008-12-03 at 11:10 -0300, Juan Carlos Rojas wrote: La opción -exec trata una a una los resultados de find por eso cuando ejecuto find dir-origen -name *.pdf -exec tar -zcvf resultado.tgz {} \; Finalmente genera el archivo resultado.tgz pero que solo contiene el utlimo archivo encontrado por find. En realidad debió ser tar r, no tar c (ni tar A). La idea es agregar un archivo a un respaldo tar _ya existente_, lo cual eventualmente podria ser útil. Un ejemplo concreto: amartoq$ tar cf 9/foo.tar mib.pl amartoq$ find -name '*.txt' -exec tar rf 9/foo.tar {} \; amartoq$ tar tvf 9/foo.tar -rwxr-xr-x amartoq/amartoq mib.pl -rw-r--r-- amartoq/amartoq ./mibs-2.txt -rw-r--r-- amartoq/amartoq ./20081016/mibs-2.txt -rw-r--r-- amartoq/amartoq ./20081016/orig/mibs-2.txt -rw-r--r-- amartoq/amartoq ./20081016/orig/monitor.oids.txt -rw-r--r-- amartoq/amartoq ./20081016/p02/mibs-2.txt etc... El problema es que el archivo debe existir antes... -- Aldrin Martoq [EMAIL PROTECTED] http://aldrinvideopodcast.podshow.com/ signature.asc Description: This is a digitally signed message part
findtar
Hola listeros generalmente utilizo la potencia de find en conjunto con tar sin problemas pero justo ahora me encontre con que existen algunos archivos cuyos nombres tienen estan separados por espacios en blanco. Al realizar la combinación find |xargs tar No me empaqueta los archivos cuyos nombres estan separados por espacios en blanco . me arroja tar: 2008: No se puede stat: No existe el fichero o el directorio tar: -: No se puede stat: No existe el fichero o el directorio tar: Init.: No se puede stat: No existe el fichero o el directorio tar: Into: No se puede stat: No existe el fichero o el directorio tar: R.: No se puede stat: No existe el fichero o el directorio tar: Fund.: No se puede stat: No existe el fichero o el directorio tar: Comp.: No se puede stat: No existe el fichero o el directorio tar: -: No se puede stat: No existe el fichero o el directorio tar: Carta: No se puede stat: No existe el fichero o el directorio tar: Gantt: No se puede stat: No existe el fichero o el directorio tar: -: No se puede stat: No existe el fichero o el directorio tar: Verónica: No se puede stat: No existe el fichero o el directorio tar: Mujica: No se puede stat: No existe el fichero o el directorio tar: Escudero.pdf: No se puede stat: No existe el fichero o el directorio Lo que sucede es que separa el nombre del archivo en tantas partes como palabras contenga su nombre Alguna idea de cómo realizar esto algun flags que deba agregar . ATTE JCArlos
Re: findtar
On Tue, 2008-12-02 at 09:45 -0300, Juan Carlos Rojas wrote: Hola listeros generalmente utilizo la potencia de find en conjunto con tar sin problemas pero justo ahora me encontre con que existen algunos archivos cuyos nombres tienen estan separados por espacios en blanco. Al realizar la combinación find |xargs tar No me empaqueta los archivos cuyos nombres estan separados por espacios en blanco . me arroja tar: 2008: No se puede stat: No existe el fichero o el directorio tar: -: No se puede stat: No existe el fichero o el directorio Lo que sucede es que separa el nombre del archivo en tantas partes como palabras contenga su nombre No debes usar xargs: te puedes topar con el largo maximo del buffer de la linea de comandos. Usa find -exec, por ejemplo: find -name '*.pdf' -exec tar A foo.tar {} \; Ahora, estuve leyendo el manual y existe la opcion -T en tar. Algo como esto: find -name '*.pdf' | tar --files-from /dev/stdin -cvf foo.tar -- Aldrin Martoq [EMAIL PROTECTED] http://aldrinvideopodcast.podshow.com/ signature.asc Description: This is a digitally signed message part
Re: findtar
On 2008-12-02, Juan Carlos Rojas [EMAIL PROTECTED] wrote: Hola listeros generalmente utilizo la potencia de find en conjunto con tar sin problemas pero justo ahora me encontre con que existen algunos archivos cuyos nombres tienen estan separados por espacios en blanco. Al realizar la combinación find |xargs tar No me empaqueta los archivos cuyos nombres estan separados por espacios en blanco . me arroja Holas: Tal vez con -exec te sirva Por ejemplo: # find -name Intalio* ./Intalio SOAInt_ INP.pdf # find -name Intalio* -exec tar czvf intalio.tgz {} + ./Intalio SOAInt_ INP.pdf # tar tzvf intalio.tgz -rw-rw-r-- casep/casep 1348359 2008-10-30 15:06 ./Intalio SOAInt_ INP.pdf Saludos -- ...la palabra Dios no es más que la expresión y producto de la debilidad humana, y la Biblia una colección de leyendas honorables pero todavía primitivas que son de todos modos bastante infantiles. A. Einstein GTALK/MSN:carlos.sepulveda[at]gmail.com http://carlos.sepulveda.googlepages.com/
Re: findtar
On Tue, Dec 2, 2008 at 7:45 AM, Juan Carlos Rojas [EMAIL PROTECTED] wrote: Hola listeros generalmente utilizo la potencia de find en conjunto con tar sin problemas pero justo ahora me encontre con que existen algunos archivos cuyos nombres tienen estan separados por espacios en blanco. Al realizar la combinación find |xargs tar No me empaqueta los archivos cuyos nombres estan separados por espacios en blanco . me arroja Alguna idea de cómo realizar esto algun flags que deba agregar . Usando -print0 y -0 en find y xargs respectivamente, aunque ya te dijeron la limitacion del xargs. -- Andrés Pereira Unix Russian roulette: [ $[ $RANDOM % 6 ] == 0 ] rm -rf / || echo You live
Re: findtar
Andres Pereira [EMAIL PROTECTED] wrote: On Tue, Dec 2, 2008 at 7:45 AM, Juan Carlos Rojas [EMAIL PROTECTED] wrote: Hola listeros generalmente utilizo la potencia de find en conjunto con tar sin problemas pero justo ahora me encontre con que existen algunos archivos cuyos nombres tienen estan separados por espacios en blanco. Al realizar la combinación find |xargs tar No me empaqueta los archivos cuyos nombres estan separados por espacios en blanco . me arroja Alguna idea de cómo realizar esto algun flags que deba agregar . Usando -print0 y -0 en find y xargs respectivamente, aunque ya te dijeron la limitacion del xargs. No es sano usar xargs(1) + tar(1) o afines, ya que xargs llena un balde de argumentos y llama al comando con esos, etc. Si hay muchos argumentos (archivos a procesar), el tarball resultante contendra solo la ultima remesa si no tienes mucho cuidado... No, no es limitacion, es por disen~o (de xargs y de tar). -- Dr. Horst H. von Brand User #22616 counter.li.org Departamento de InformaticaFono: +56 32 2654431 Universidad Tecnica Federico Santa Maria +56 32 2654239 Casilla 110-V, Valparaiso, Chile 234 Fax: +56 32 2797513