[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Comprimir rutas completas



Gorka wrote:
> 
>> On Tue, Mar 24, 2009 at 11:14:38AM +0100, fernandojoseGmail wrote:
>>> Gorka wrote:
>>>> Hola. A ver si me explico correctamente.
>>>>
>>>> Quiero comprimir miles de archivos en rutas de carpetas realmente
>> largas
>>>> y complejas que contienen muchas otras carpetas y archivos que no
>> quiero
>>>> comprimir.
>>>>
>>>> Necesito que se comprima, además de cada archivo la ruta completa
>> donde
>>>> se encuentra, de forma que al final me quede un único .tar.gz con
>> sólo
>>>> los archivos que necesito y no los demás.
>> [...]
>>
>>>> ¿Cómo se puede hacer esto? Gracias.
>>> man tar
>>> Mira la opción --exclude-from file
>>>
>>> Se me olvidaba...
>>> Para generar el fichero puedes usar un find . -name "*" > fichero
>>> y editarlo para eliminar los ficheros que quieres excluir.
>> También debe emplear la opción -P o --absolute-names.
> 
> Hola, Fernando, Pablo, ... y demás listeros.
> 
> La opción '--exclude-from file' hace exactamente lo contrario de lo que
> quiero, ya que excluye de la compresión las rutas que aparecen en file. 
> Lo que yo necesito sería precisamente '--include-from file', que no existe,
> claro.
> 
> Para simularla coloco en file las rutas opuestas, es decir, las que no
> quiero conservar, pero esto supone que tengo que convertir este file
> (resultado del ' find a -name "*" > file'):
> 
> a
> a/b
> a/b/QUIERO1
> a/b/c
> a/b/c/QUIERO4
> a/b/NOQUIERO3
> a/b/d
> a/b/d/e
> a/b/d/e/f
> a/b/d/e/f/NOQUIERO8
> a/b/d/e/NOQUIERO7
> a/b/d/e/QUIERO6
> a/b/d/NOQUIERO5
> a/b/QUIERO2
> 
> manualmente en este otro (fijaos en que no es simplemente eliminar las
> líneas con los archivos que quiero):
> 
> a/b/NOQUIERO3
> a/b/d/e/f
> a/b/d/e/f/NOQUIERO8
> a/b/d/e/NOQUIERO7
> a/b/d/NOQUIERO5
> 
> y tras hacer el ' tar -cvzf comp2.tar.gz a --exclude-from file' ya se me
> queda con lo que quiero, que es:
> 
> /a/b/QUIERO1
> /a/b/QUIERO2
> /a/b/c/QUIERO4
> /a/b/d/e/QUIERO6
> 
> Esta solución es válida, en el sentido de que soluciona el problema, pero me
> pregunto si no habría una mejor. 
> Como podeís ver, es más fácil y menos arriesgado tener un fichero de rutas a
> incluir, que uno de rutas a excluir. 
> La cosa se ve más clara cuando queremos comprimir miles de archivos y
> descartar millones. 
> 
> 
> 
> 
> 

En el man de tar viene:

-T, --files-from F
              obtiene los nombres a extraer o crear del fichero F

que creo que hace lo que quieres.
(no lo he probado...)

Saludos.

-- 
Fernando.
{:-{D>

   "Hackers do it with fewer instructions."



Reply to: