Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home...
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje ¿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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Sabado, 19 Enero 2013, 14:40; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Sabado, 19 Enero 2013, 22:41; editado 2 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 
sebikul - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron