Saltar al contenido

¿Cómo agregar/actualizar un archivo a un archivo tar.gz existente?

Omar, miembro de este staff, nos ha hecho el favor de redactar este post ya que controla a la perfección el tema.

Solución:

Para extraer su archivo de su archivo, puede usar tar xzf archive.tar.gz my/path/to/file.txt. Tenga en cuenta que también se crearán los directorios en la ruta del archivo. Usar tar t (es decir tar tzf archive.tar.gz) para listar los archivos en el archivo.

tar no admite la actualización “in situ” de archivos. Sin embargo, puede agregar archivos al final de un archivo, incluso si tienen la misma ruta que un archivo que ya está en el archivo. En ese caso, ambas copias del archivo estarán en el archivo y el archivo agregado más tarde anulará al anterior. El comando a usar para esto es tar r (o tar u para agregar solo archivos que son más nuevos que el archivo) es el comando a usar. los . en el camino no debería ser un problema.

Sin embargo, hay una trampa: no se puede agregar a un archivo comprimido. Entonces tendrías que hacer:

gunzip archive.tar.gz
tar rf archive.tar data/data/com.myapp.backup/./files/settings.txt
gzip archive.tar

Lo que probablemente no sea lo que quieras escuchar, ya que significa reescribir todo el archivo dos veces. Si no es un archivo muy grande, podría ser mejor descomprimir todo y luego volver a colocarlo después de editarlo. Alternativamente, puede usar un archivo sin comprimir.

El formato de archivo tar es solo una serie de archivos concatenados junto con algunos encabezados. No es un trabajo muy complicado desarmarlo, poner su contenido y volver a armarlo. Dicho esto, Jander describió cómo tar, como programa, no tiene las funciones de utilidad para hacer esto y existen complicaciones adicionales con la compresión, que debe realizarse tanto antes como después de realizar un cambio.

¡Sin embargo, hay herramientas para el trabajo! Existen al menos dos sistemas que le permitirán realizar un montaje de bucle invertido de un archivo tar comprimido en una carpeta y luego realizar los cambios en el sistema de archivos. Cuando haya terminado, desmonte la carpeta y su archivo comprimido estará listo para funcionar.

La primera opción sería el proyecto de montaje en archivo para FUSE. Aquí hay un tutorial sobre eso. Su sistema probablemente ya tenga FUSE y, si no lo tiene, su distribución debería tener una opción para ello.

La otra opción son las tarifas. Es más fácil de usar, pero he oído que tiene algunos problemas para corromper los archivos bzip2, por lo que podría probarlo bastante bien primero.

Tar originalmente estaba destinado a ser utilizado para cintas, por lo que “reemplazar” archivos no está realmente en el diseño. Sin embargo, puedes usar --delete para eliminar el archivo del tar original y luego -u para actualizar el tar y volver a agregar el archivo. Puede tomar un poco, ya que tar necesita reorganizar el archivo internamente.

Puntuaciones y reseñas

Tienes la opción de añadir valor a nuestra información colaborando tu experiencia en las notas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *