RE: findtar

2008-12-03 Por tema Juan Carlos Rojas
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

2008-12-03 Por tema Alvaro Herrera
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

2008-12-03 Por tema Carlos (casep) Sepulveda
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

2008-12-03 Por tema Aldrin Martoq
-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

2008-12-02 Por tema Juan Carlos Rojas
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

2008-12-02 Por tema Aldrin Martoq
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

2008-12-02 Por tema Carlos (casep) Sepulveda
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

2008-12-02 Por tema Andres Pereira
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

2008-12-02 Por tema Horst H. von Brand
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