在重命名根目标时解压缩包含单个根目录的 tarball
Posted
技术标签:
【中文标题】在重命名根目标时解压缩包含单个根目录的 tarball【英文标题】:Decompressing a tarball containing a single root directory while renaming the root destination 【发布时间】:2014-01-15 08:10:47 【问题描述】:这是场景:
$ wget "http://foo.bar/repository/nightly/src/foo-latest.tar.gz"
$ tar -xzf foo-lastest.tar.gz
$ ls # the archive root contained a single directory named after software name and the build date
foo-20140115-0024
你想要的是最后,提取的文件放在目录foo中,而不是foo-20140115-0024。您当然可以在解压缩后移动目录:
$ mv `tar -tvzf foo-latest.tar.gz | head -n1 | awk 'print $6'` foo
问题来了:是否有更短/更合适的方法来执行相同的结果?
【问题讨论】:
【参考方案1】:这应该可行:
$ mkdir foo
$ tar -C foo --strip-components=1 -xzf foo-latest.tar.gz
首先我们创建输出目录。
之后,我们使用-C
将存档解压缩到该目录,并使用--strip-components
从存档中删除根目录。
【讨论】:
以上是关于在重命名根目标时解压缩包含单个根目录的 tarball的主要内容,如果未能解决你的问题,请参考以下文章