¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?


Objetivo: ¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?
Hola:

Necesitaria empaquetar y comprimir una serie de archivos y subdirectorio, pero con tar, me guarda toda la ruta (/home/usuario/), para luego descomprimirlo en otro ordenador.

¿que parametro hay que introducir para que no se guarde la ruta /home/usuario?

Saludos

Objetivo: Re: ¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?
Julio:

¿ Te refieres con Tar ?. Es que hay otros compresores.

Empaquetar y comprimir:
tar czvf archivo.tar.gz /directorio/*

Desempaquetar y descomprimir:
tar xzvf archivo.tar.gz

Ver el contenido sin extraer:
tar tzvf archivo.tar.gz

Para el contenido de una carpeta:

tar cvzf directorio.tar.gz *

Para descomprimir en el lugar que te encuentras, usa:

tar xzvf /ruta/archivo.tar.gz

Saludos

Objetivo: Re: ¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?
Shell:

Si uso tar... el problema me tengo es que con tar, al comprimir, le tengo que dar la ruta donde estan los archivos.... (no lo hago desde consola, lo hago desde un programa en gambas)

Citar:
tar czvf archivo.tar.gz /home/uno/tutorial1.txt


Y al descomprimirlo, (en cualquier sitio, por ejemplo /home/julio/Descargas), me crea la ruta dentro de Descargas...

Quedando asi
/home/julio/Descarga/home/uno/tutorial1.txt

Cuando lo que quiero es que se viera asi:
/home/julio/Descarga/tutorial1.txt

¿se me entiende?

Nota:
Por cierto, la orden tar, no me funciona bien usando Exec, solo funciona bien con Shell.

Objetivo: Re: ¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?
Julio:

Puede que la solución fuera ir al directorio y luego comprimir.

Si sabemos que ruta=/home/uno/

cd ruta && tar czvf archivo.tar.gz tutorial1.txt && cp archivo.tar.gz rutadestino && rm -f archivo.tar.gz




Saludos.

última edición por Shell el Sabado, 19 Enero 2013, 14:40; editado 1 vez
Objetivo: Re: ¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?
Shell:

Pues no, no va... se ve que es algo que viene por defecto en linux, siempre se guarda la ruta completa... (he probado tambien con zip)...

Saludos

Objetivo: Re: ¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?
La respuesta está aquí:

man tar


La opción -C cambia antes al directorio donde están los ficheros a comprimir, de manera que a la hora de descomprimir, éstos se descomprimirán en el directorio desde donde se ejecute la orden tar. La opción -C también es válida para descomprimir.

También podemos tener en cuenta la variable de entorno $HOME en bash, que devuelve la ruta al directorio de usuario, en tu caso Julio, a /home/uno.

Saludos

Perfil MP  
Objetivo: Re: ¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?
ufff... no me sale...

¿podrias poner un ejemplo de como seria la linea de comando?

He puesto:
tar Cczvf comprimido.tar.gz /home/uno/GeneradorCarnets/plantillas/*

pero me da el error:
tar: comprimido.tar.gz: No se puede chdir: No es un directorio
tar: Error is not recoverable: exiting now

Objetivo: Re: ¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?
Tengo que ver mejor lo que comenta Jesús para simplificar.

Julio prueba con este código.

'Este código crea dos directorios,CarpetaOrigen y CarpetaDestino en la home del usuario.
'En el directorio origen, se crea subdirectorios de la A a la Z
'Se comprime el contenido de la carpeta origen y se manda este al directorio destino
'Se elimina el archivo comprimido en origen
'En la carpeta destino se descomprime el archivo comprimido creando los subdirectorios en destino
'Se elimina el archivo comprimido en destino

'No olvide borrar los directorios creados al final de la prueba. :-)

Private Const carpetaor As String = "CarpetaOrigen"
Private Const carpetades As String = "CarpetaDestino"

Public Sub Form_Open()

CreaDirs
Shell "cd " & User.Home &/ carpetaor & "&& tar czf carpetas.tar.gz * && cp carpetas.tar.gz " & User.Home &/ carpetades & "&& rm -f carpetas.tar.gz" Wait
Shell "cd " & User.Home &/ carpetades & "&& tar xzf carpetas.tar.gz && rm -f carpetas.tar.gz"

End

Public Sub CreaDirs()

Dim x As Integer

If Not Exist(User.home &/ carpetaor) Then Mkdir User.Home &/ carpetaor
If Not Exist(User.home &/ carpetades) Then Mkdir User.Home &/ carpetades
For x = Asc("A") To Asc("Z")
If Not Exist(User.home &/ carpetaor &/ Chr$(x)) Then Mkdir User.home &/ carpetaor &/ Chr$(x)
Next

End


Vale, he puesto carpetas...

Saludos

última edición por Shell el Sabado, 19 Enero 2013, 22:41; editado 2 veces
Objetivo: Re: ¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?
Aqui ya tienes el modulo programado. Es parte de un proyecto mio.

Esta es una version modifocada de la funcion Tar() que te puede servir:

Private Function Tar(Path As String, Dest As String) As Boolean

If Dest Not Ends ".tar.gz" Then Dest &= ".tar.gz"
If Exist(Dest) Then Return False

Debug (Subst("Compressing &1 at &2", Path, Dest))

Shell Subst("tar cz -C &3 -f &1 &2", Shell(Dest), Shell(Path), User.Home) Wait

Return (Process.LastValue = 0)


End


Retorna True si todo sale bien. El archivo/carpeta a comprimir debe estar dentro de /home/$USER, caso contrario modificar la linea de la siguiente manera:


Shell Subst("tar cz -C &3 -f &1 &2", Shell(Dest), Shell(Path), $ROOT) Wait


Siendo $ROOT el directorio de primer nivel que se quiere incluir dentro del archivo comprimido.

Espero que te sirva! Saludos

EDIT: En el mismo modulo cuentas con una función para descomprimirlo y para listar el contenido del archivo.

última edición por sebikul el Sabado, 19 Enero 2013, 23:44; editado 3 veces
Perfil MP  
Objetivo: Re: ¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?
Shell y Sebikul

Gracias, mirare los dos ejemplos que me pasais.

Lo he podido "solucionar", pero de una manera bastante "basta".... (analizando el contenido del archivo comprimido y viendo que rutas iba a crear, luego lo descomprimia, y como sabia que ruta iba a crear, movia los archivos a la ruta que me interesaba, y luego borraba las estructura de directorio que habia creado el archivo descomprimido)...

Saludos


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4406s (PHP: -72% SQL: 172%)
Consultas SQL: 48 - Debug off - GZIP Activado