Linux

如何在解壓前更改 tar.gz 中的文件夾名稱?

  • November 7, 2022

我有一個名為“first.tar.gz”的 tar.gz。在其中我只有一個名為“first”的文件夾(沒有其他文件夾或文件)。我想解壓tar.gz,所以文件夾“first”重命名為“second”。

我試過這個:

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

但這對我不起作用。我沒有收到任何錯誤/響應,它只是提取了“第一個”文件夾而沒有重命名。tar 的版本是 1.26

當您使用--transformGNUtar並使用 請求詳細輸出時-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

引用自:https://unix.stackexchange.com/questions/723935