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

Pregunta:

¿Hay alguna forma de agregar / actualizar un archivo en un archivo tar.gz? Básicamente, tengo un archivo que contiene un archivo en /data/data/com.myapp.backup/./files/settings.txt y me gustaría extraer ese archivo del archivo (ya hecho) y volver a colocarlo en el archivo una vez realizada la edición. ¿Cómo puedo lograr esto? ¿Es problemático debido al . ¿en el camino?

Respuesta:

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. Utilice 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. El . en el camino no debería ser un problema.

Sin embargo, hay un problema: 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 cual probablemente no es lo que desea escuchar, ya que significa reescribir todo el archivo dos veces. Si no es un archivo muy grande, sería mejor descomprimir todo y luego volver a tarlo después de editarlo. Alternativamente, puede usar un archivo sin comprimir.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım