tar.gz를 추출하기 전에 폴더 이름을 어떻게 변경할 수 있나요?

tar.gz를 추출하기 전에 폴더 이름을 어떻게 변경할 수 있나요?

"first.tar.gz"라는 tar.gz가 있습니다. 그 안에는 "first"라는 폴더만 있습니다(다른 폴더나 파일은 없음). tar.gz의 압축을 풀고 싶으므로 "first" 폴더의 이름이 "second"로 변경됩니다.

나는 이것을 시도했습니다 :

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

그러나 이것은 나에게 효과가 없습니다. 오류/응답이 없으며 이름을 바꾸지 않고 "첫 번째" 폴더를 추출합니다. 타르 버전은 1.26 입니다.

답변1

--transformGNU로 작업 tar하고 자세한 출력을 요청 하면 -v출력되는 경로 이름은 다음과 같습니다.변하지 않은경로명.

GNU는 tar사용자의 표현식을 기반으로 --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

관련 정보