我有一个.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
开关或者以某种方式来破解它?
此外,我无法编辑或移动提取此档案的容器上的文件