0

大多数 tar 软件版本确实包含一个包含版本的目录,例如product-1.2.3,我正在寻找一个简单的 bash 解决方案来将此类存档解压缩到不包含该版本的目录。

请注意,tar 存档名称与其中包含的目录不同。

显然,一种方法是在之后重命名它,但为了做到这一点,您需要知道原始目录名称是什么。

4

1 回答 1

0

这里有两个有用的选项:

File name transformations:
       --strip-components=NUMBER
              strip NUMBER leading components from file names on extraction
Common options:
       -C, --directory=DIR
              change to directory DIR

例如

[user@host tmp]$ mkdir test-0.0.2
[user@host tmp]$ echo Hello > test-0.0.2/README
[user@host tmp]$ tar zvcf mytarball.tgz test-0.0.2
test-0.0.2/
test-0.0.2/README
[user@host tmp]$ mkdir targetdir
[user@host tmp]$ tar zxvf mytarball.tgz --strip-components=1 -C targetdir
test-0.0.2/README
[user@host tmp]$ ls targetdir/
README
[user@host tmp]$
于 2013-04-16T10:56:28.823 回答