GNU/Linux >> Tutoriales Linux >  >> Linux

Actualización de un solo archivo en un tar comprimido

Si el archivo que desea actualizar es un archivo de texto. Entonces puedes usar vim editor directamente para abrir el tarball que contiene el archivo y abrirlo, al igual que abrir una carpeta con el editor vim. Luego modifique el archivo, guárdelo y salga.

Sin embargo, si el archivo es un binario. No tengo ni idea de la solución.


Bueno, encontré la respuesta.

No puedes usar tar -u con un archivo comprimido. Así que la solución que usé fue la siguiente. Tenga en cuenta que moví el z.jar archivo a una carpeta que creé en el directorio actual llamado application/x/y para este propósito.

gzip -d application.tar.gz
tar -uf application.tar application/x/y/z.jar
gzip application.tar

Cuando hice un tar -tf application.tar (después de la actualización, antes del gzip) se mostró correctamente.


en mi caso, tuve que eliminar el archivo y luego agregar el nuevo archivo con los siguientes pasos:

mi archivo tar

file.tar
└── foo.json
└── bar.json
└── dir
    └── zoo.json

y solo quería modificar/actualizar foo.json archivo sin extraer y volver a crear todo el archivo tar file.tar , Aquí están los comandos:

tar -x -f file.tar foo.json # extract only foo.json file to my current location
# now modify the file foo.json as you want ...
tar --delete -f file.tar foo.json # delete the foo.json file from the file.tar
tar -uf file.tar foo.json # add the specific file foo.json to file.tar

archivo comprimido:

si es un archivo comprimido, como file.tar.gz , deberá extraer el archivo tar del archivo comprimido (en este ejemplo, gzip) usando gunzip file.tar.gz que creará para usted el archivo tar file.tar . entonces podrá hacer lo anterior pasos.

al final debe comprimir el archivo tar nuevamente usando gzip file.tar que creará para usted un archivo comprimido con el nombre file.tar.gz

subdirectorios:

para manejar subdirectorios, deberá mantener la misma estructura también en el sistema de archivos:

tar -x -f file.tar dir/zoo.json
# now modify the file dir/zoo.json as you want ...
tar --delete -f file.tar dir/zoo.json
tar -uf file.tar dir/zoo.json

ver la estructura del archivo:

usando el less comando, puede ver la estructura del archivo:

less file.tar

drwxr-xr-x root/root         0 2020-10-18 11:43 foo.json
drwxr-xr-x root/root         0 2020-10-18 11:43 bar.json
drwxr-xr-x root/root         0 2020-10-18 11:43 dir/zoo.json


Linux
  1. Abrir un archivo .tar.gz con un solo comando

  2. Copiar un archivo disperso de 1 TB

  3. Cómo extraer el archivo filename.tar.gz

  4. tar -C con un patrón de archivo comodín

  5. ¿Cómo convierto tar.bz2 a tar.gz?

Cómo extraer (descomprimir) el archivo Tar Gz

Cómo extraer (descomprimir) el archivo tar.xz

Cómo crear un archivo Tar Gz

Tar:¿Extraer un solo archivo a un directorio sin crear subcarpetas?

Cómo crear un archivo Tar gz

Extraiga el archivo tar.gz en Linux