解压 tar 存档时绕过 `-C` 标志

解压 tar 存档时绕过 `-C` 标志

我有一个.tar.gz具有以下结构的档案:

opt/client/py/utils/mappings/templates/config.json
opt/
opt/mag/
opt/mag/sw/
opt/mag/sw/apps/
opt/mag/sw/apps/service/
opt/mag/etc/
opt/mag/etc/service.environment
opt/mag/etc/service.toml

.tar.gz使用以下命令提取该档案:

tar -zxf ../service.tar.gz -C opt/mag/ --strip-components=2

问题是这会提取opt/client/py/utils/mappings/templates/config.json里面的文件,所以opt/mag它会变成:opt/mag/py/utils/mappings/templates/config.json这显然是错误的。请注意删除。opt/client/--strip-components=2

问题是我无法更改解压缩命令

我尝试通过插入两个虚拟目录来绕过--strip-components=2这样的事情:

dummy1/dummy2/opt/client/py/utils/mappings/templates/config.json
opt/
opt/mag/
opt/mag/sw/
opt/mag/sw/apps/
opt/mag/sw/apps/service/
opt/mag/etc/
opt/mag/etc/service.environment
opt/mag/etc/service.toml

这种方式--strip-components=2将会删除dummy1/dummy2并且配置文件将被提取到/opt/mag/opt/client/py/utils/mappings/templates/config.json但仍是错误的,因为这-C opt/mag将强制提取里面opt/mag

鉴于我无法更改 unzip 命令有什么方法可以绕过这个-C开关或者以某种方式来破解它?

此外,我无法编辑或移动提取此档案的容器上的文件

相关内容