Linux 将tar的现有绝对文件夹结构选择性解压缩到目录
假设Linux 将tar的现有绝对文件夹结构选择性解压缩到目录,linux,docker,gzip,tar,Linux,Docker,Gzip,Tar,假设example.tar.gz存档包含以下内容: volumes/wordpress/a volumes/wordpress/.b volumes/wordpress/c/d volumes/service2/a volumes/service2/.b volumes/service3/c/d volumes/service3/a volumes/service3/.b volumes/service3/c/d 我想将归档文件的卷/wordpress的内容提取到主机上的/var/www/ht
example.tar.gz
存档包含以下内容:
volumes/wordpress/a
volumes/wordpress/.b
volumes/wordpress/c/d
volumes/service2/a
volumes/service2/.b
volumes/service3/c/d
volumes/service3/a
volumes/service3/.b
volumes/service3/c/d
我想将归档文件的卷/wordpress
的内容提取到主机上的/var/www/html
目录中(该目录已存在且无法删除),最终得到:
/var/www/html/a
/var/www/html/.b
/var/www/html/c/d
我没有办法重新格式化tar文件
我所尝试的:
但这会创建gunzip-c example.tar.gz | tar-c/var/www/html-xf-volumes/wordpress
/var/www/html/volumes/wordpress/…
但这会跳过gunzip-c example.tar.gz | bash-c'tar-c/tmp-xf-volumes/wordpress&&mv/tmp/volumes/wordpress/*/var/www/html'
文件.b
但是rsync在docker容器的上下文中不存在gunzip-c example.tar.gz | bash-c'tar-c/tmp-xf-volumes/wordpress&&rsync-a——删除源文件/tmp/volumes/wordpress//var/www/html/”
这允许在docker compose yml中定义wordpress容器(因此我声明无法删除gunzip…|docker compose run--rm wordpress tar…
,因为它是作为卷装入的)/var/www/html/
编辑结果表明,我最终找到了一个令人满意的(尽管很粗糙)解决方案,而且是针对Docker的(所以编辑的问题包括Docker标签)。我将提供一个粗略的答案来回答这个问题。如果可能的话,我仍然对与Docker无关的答案感兴趣。我能够将已经定义(由Docker compose.yml)的卷
my volume
重新装载到Docker compose运行的my service
,但在这种情况下映射到第二个容器化目录,tar将在其中输出其内容
e、 g
gunzip-c example.tar.gz | docker compose run--rm-v我的卷:/volumes/wordpress我的服务tar-c/-xf-volumes/wordpress