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