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
¿como Empaquetar Y Comprimir Varios Archivos Y Subcarpetas, Pero Sin /home/usuario/ ?
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
¿ 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)
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.
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:
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/ ?
última edición por Shell el Sabado, 19 Enero 2013, 14:40; editado 1 vez
Julio:
Puede que la solución fuera ir al directorio y luego comprimir.
Si sabemos que ruta=/home/uno/
Saludos.
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
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í:
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
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
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
¿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/ ?
última edición por Shell el Sabado, 19 Enero 2013, 22:41; editado 2 veces
Tengo que ver mejor lo que comenta Jesús para simplificar.
Julio prueba con este código.
Vale, he puesto carpetas...
Saludos
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
'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/ ?
última edición por sebikul el Sabado, 19 Enero 2013, 23:44; editado 3 veces
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.
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
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:
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
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
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 mensajesNo 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