如何在解压之前更改 tar.gz 中的文件夹名称?

如何在解压之前更改 tar.gz 中的文件夹名称?

我有一个名为“first.tar.gz”的 tar.gz。在它里面我只有一个名为“first”的文件夹(没有其他文件夹或文件)。我想解压 tar.gz,因此文件夹“first”重命名为“second”。

我试过这个:

tar -zxf first.tar.gz --transform s/first/second/

但这对我不起作用。我没有收到任何错误/响应,它只是提取了“第一个”文件夹而没有重命名。 tar的版本是1.26

答案1

--transform当您与 GNU 一起使用tar并要求使用 详细输出时-v,您看到输出的路径名是未转化的路径名。

GNUtar将根据您的--transform表达式转换路径名,但不会在输出中报告这些路径名,除非您使用选项--show-transformed-names

例子:

$ tree
.
`-- archive.tar

0 directories, 1 file
$ gtar -t -f archive.tar
first/
first/dir/
first/dir/first.txt
first/dir/file
$ gtar -xv -f archive.tar --transform='s/first/second/'
first/
first/dir/
first/dir/first.txt
first/dir/file

请注意上述命令如何报告存储在存档中的路径名。下面,我们看到路径名已被适当转换。

$ tree
.
|-- archive.tar
`-- second
    `-- dir
        |-- file
        `-- first.txt

2 directories, 3 files

相关内容