在压缩的tar中更新单个文件

给定一个压缩的归档文件,如application.tar.gz ,其中包含一个文件夹application/x/y/z.jar等,我希望能够把我的最新版本的z.jar和更新/刷新存档它。

有没有办法做到这一点比以下类似?

 tar -xzf application.tar.gz cp ~/myupdatedfolder/z.jar application/x/y tar -czf application application.tar.gz 

我知道tar中的-u开关可能是用来避免解开整个事物的,但我不确定如何正确使用它。

那么,我找到了答案。

你不能使用压缩归档的tar -u 。 所以我使用的解决方案如下。 请注意,我将z.jar文件移动到了我在当前目录(名为application/x/y创建的文件夹中。

 gzip -d application.tar.gz tar -uf application.tar application/x/y/z.jar gzip application.tar 

当我做了tar -tf application.tar (在更新之后,在gzip之前),它显示正确。

如果您要更新的文件是文本文件。 然后你可以直接使用vim编辑器打开包含文件的压缩包并打开它,就像使用vim编辑器打开文件夹一样。 然后修改文件并保存并退出。

但是,如果该文件是二进制文件。 我不知道解决方案。