linux - 更新压缩的 tar 中的单个文件

标签 linux 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 之前)它正确显示。

关于linux - 更新压缩的 tar 中的单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2956206/

相关文章:

c - 尽管出现警告消息 'not found",但已成功删除内核模块

linux - 恢复linux中的arp缓存

archive - IBM i PASE tar - 排除文件或目录

linux - 如何在 Linux/Unix 中创建超过 2GB 的文件?

file - 从 Nim 中的 tar.gz 存档中读取文件

python - 如何与普通用户一起使用 root 创建的套接字

linux - 如何在 Linux 上传递带感叹号的参数?

python - ImportError : No module named tensorflow, 但tensorflow确实存在

php - tar 提取后,更改权限

Ruby:创建 Gzipped Tar 存档