|
Página 1 de 1
|
¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home...
Autor |
Mensaje |
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
¿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
|
#1 Sabado, 19 Enero 2013, 03:47 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
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"
|
#2 Sabado, 19 Enero 2013, 11:04 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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.
|
#3 Sabado, 19 Enero 2013, 13:33 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
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
|
#4 Sabado, 19 Enero 2013, 14:39 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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
|
#5 Sabado, 19 Enero 2013, 15:04 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: ¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?
La respuesta está aquí:
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"
|
#6 Sabado, 19 Enero 2013, 17:30 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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
|
#7 Sabado, 19 Enero 2013, 18:54 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
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
|
#8 Sabado, 19 Enero 2013, 22:36 |
|
|
sebikul
Sebastian
Programador
Registrado: Julio 2012
Mensajes: 113
Edad: 30 Ubicación:
|
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:
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:
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
|
#9 Sabado, 19 Enero 2013, 23:37 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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
|
#10 Domingo, 20 Enero 2013, 00:29 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|