Posible duplicado:
¿Agregar/actualizar un archivo a un archivo tar.gz existente?
Tengo algunos archivos de juegos que deseo actualizar diariamente y crean un tar.gz de la carpeta, pero en lugar de hacer un tar.gz completo de todos los archivos nuevamente cada día, estoy tratando de encontrar una manera de verificarlo. el directorio de archivos cambiados/agregados/eliminados y actualice el archivo para ahorrar tiempo y CPU en lugar de volver a crear el archivo desde cero todos los días. ¿Cómo puedo hacer esto?
Estaba tratando de usar -listed-incremented sin suerte hasta ahora.
Respuesta aceptada:
Debe crear una copia de seguridad de nivel 0 primero:
$ tar --create --verbose --listed-incremental ./game.snar --gzip \
--file game_`date +%F`.tar.gz game/
y al día siguiente, este comando comprime solo los archivos modificados desde la creación de ./game.snar
:
$ tar --create --verbose --listed-incremental ./game.snar --gzip \
--file game_`date +%F`.tar.gz game/
Este archivo se llama copia de seguridad de nivel 1 .
Cuando desee restaurar, coloque todos los archivos de almacenamiento en una carpeta y extraiga cada uno en el orden de su creación utilizando el --incremental
opción, algo como esto:
$ for t in game_2011-10-2*.tar.gz; \
do tar --verbose --extract --incremental --gzip --file $t; done