"first.tar.gz"라는 tar.gz가 있습니다. 그 안에는 "first"라는 폴더만 있습니다(다른 폴더나 파일은 없음). tar.gz의 압축을 풀고 싶으므로 "first" 폴더의 이름이 "second"로 변경됩니다.
나는 이것을 시도했습니다 :
tar -zxf first.tar.gz --transform s/first/second/
그러나 이것은 나에게 효과가 없습니다. 오류/응답이 없으며 이름을 바꾸지 않고 "첫 번째" 폴더를 추출합니다. 타르 버전은 1.26 입니다.
답변1
--transform
GNU로 작업 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