I want to update a tar file with part of the content modified, by overwriting the original file, in a script.
-r, but none does what I want. I also tried with
An easy test:
cd ~ mkdir test echo foo > test1.txt mkdir test_dir cd test_dir echo bar > test2.txt cd ../.. tar cvf test.tar test tar tvf test.tar # check content echo barbarbar >> test/test_dir/test2.txt tar rvf test.jar test # or Avf, or uvf, it's the same: modified file does not overwrite the original file in the tar
-u --overwritetheoretically will "update", but actually it only appends and does not append the changed file, so I see two
test2.txtthere in the tar, with the
test2.txtbeing the old one
-A --overwritetheoretically will append, but errors out:
tar: test: Read error at byte 0, while reading 1024 bytes: Is a directory tar: Error is not recoverable: exiting now
-r --overwritetheoretically will "append", but will only append, and no overwrite, so I see two
test2.txtin the tar.
I thought: OK then tar does not include the possibility of updating the tar in place. But then I remember that this can be achieved easily by drag the new folder to the tar file in Gnome(I think this is handled by "Archive Manager"), so it's at least possible.
How can I overwrite files in tar in command line/script?