I found this paragraph in GNU tar
doc, so overwriting is not supported by tar
. I will remove the original file from the tar, and append the modified one.
https://www.gnu.org/software/tar/manual/html_node/how-to-update.html#how-to-update
4.2.3.1 How to Update an Archive Using ‘--update’
You must use file name arguments with the ‘--update’ (‘-u’) operation. If you don’t specify any files, tar won’t act on any files and won’t tell you that it didn’t do anything (which may end up confusing you).
To see the ‘--update’ option at work, create a new file, ‘classical’, in your practice directory, and some extra text to the file ‘blues’, using any text editor. Then invoke tar with the ‘update’ operation and the ‘--verbose’ (‘-v’) option specified, using the names of all the files in the ‘practice’ directory as file name arguments:
$ tar --update -v -f collection.tar blues folk rock classical
blues
classical
$
Because we have specified verbose mode, tar prints out the names of the files it is working on, which in this case are the names of the files that needed to be updated. If you run ‘tar --list’ and look at the archive, you will see ‘blues’ and ‘classical’ at its end. There will be a total of two versions of the member ‘blues’; the one at the end will be newer and larger, since you added text before updating it.
The reason tar does not overwrite the older file when updating it is that writing to the middle of a section of tape is a difficult process. Tapes are not designed to go backward. See section Tapes and Other Archive Media, for more information about tapes.
EDIT:
--delete
does not work/is very slow. It seems that delete files from tar is not very feasible, maybe by design. I think I have to extract/remove/repackage, or: https://unix.stackexchange.com/questions/68732/remove-files-from-tar-archive but I don't know how yet.