Tar解压文件夹,如何更改其名称?

Tar解压文件夹,如何更改其名称?

我正在创建一个下载 mongo c 驱动程序的脚本:

wget -O mongo.tar.gz https://... \
    && tar -xzvf mongo.tar.gz \
    && cd mongo \
    && ...

但是它在这一cd mongo部分失败了,因为我解压 tar 时的实际文件夹名称是mongo-c-driver-1.7.0。我不能依赖这个名字。如何在不知道名称看起来如何的情况下修改它?

答案1

你可以应用 sed 命令来转换名字。来自man tar

 --transform, --xform EXPRESSION
       use sed replace EXPRESSION to transform file names

所以:

wget -O - https://... |
    tar -xzv --transform 's:^[^/]*:mongo:'

s:^[^/]*:mongo:将第一个之前的所有内容替换/mongo。您可以将文件直接传输到tar(因此我-O -在 wget 中使用,并-f在 tar 中删除了该选项)。

或者,您可以修剪第一个组件并提取到您选择的目录:

mkdir -p mongo && wget -O - https://... |
    tar -xzv --strip-components=1 -C mongo

在哪里:

 --strip-components=NUMBER
       strip NUMBER leading components from file names on extraction
 -C, --directory DIR
       change to directory DIR

相关内容