Possibile duplicato:
Aggiungere/aggiornare un file a un archivio tar.gz esistente?
Ho alcuni file di gioco che desidero aggiornare quotidianamente e creano un tar.gz della cartella, ma invece di creare un tar.gz completo di tutti i file di nuovo ogni giorno, sto cercando di trovare un modo per farlo controllare la directory per i file modificati/aggiunti/eliminati e aggiornare l'archivio per risparmiare tempo e CPU invece di ricreare l'archivio da zero ogni giorno. Come posso farlo?
Finora stavo cercando di usare –listed-incremented senza fortuna.
Risposta accettata:
Devi creare un backup di livello 0 primo:
$ tar --create --verbose --listed-incremental ./game.snar --gzip \
--file game_`date +%F`.tar.gz game/
e il giorno successivo, questo comando comprime solo i file modificati dalla creazione del ./game.snar
:
$ tar --create --verbose --listed-incremental ./game.snar --gzip \
--file game_`date +%F`.tar.gz game/
Questo archivio è chiamato backup di livello 1 .
Quando vuoi ripristinare, metti tutti i file di archivio in una cartella ed estrai ciascuno in ordine di creazione usando il --incremental
opzione, qualcosa del genere:
$ for t in game_2011-10-2*.tar.gz; \
do tar --verbose --extract --incremental --gzip --file $t; done