tar'd 파일을 서브 디렉토리에 놓으십시오


8

다음과 같은 디렉토리 설정이 있습니다.

folder_x
file.y
file.z

압축을 풀 때 구조가 다음과 같이되도록 tar 파일을 만들고 싶습니다.

dir_q/folder_x
dir_q/file.y
dir_q/file.z

를 사용하여 tar어떻게 작동하게 할 수 있습니까? 참고로 현재 사용중인 명령은 다음과 같습니다.

tar -czf archive.tar.gz file.y file.z folder_x

답변:


9

나는 --transform 옵션을 사용한 적이 없지만 필요한 것을 수행하기 위해 수집합니다.

tar -czf archive.tar.gz --transform 's,^,dir_q/,' file.y file.z folder_x

구분 기호 ,대신 사용을 실현하여 /후행 슬래시를 추가 할 수 있습니다.


흠, 제대로 작동하지 않는 것 같습니다 : file.z-> dirfile.zdirfolder_x. 정규식으로 놀아도 내가 원하는 방식으로 얻을 수 있는지 확인하십시오.

1
tar -czf archive.tar.gz --transform 's, ^, dir_q /,'file.y file.z folder_x Sed는 / 대신 슬래시가있을 때 모호함을 피하면서 / 대신에을 허용합니다. . 일반적으로 백 슬래시로 슬래시를 벗어날 수는 있지만 sed (적어도 gnu sed)는 슬래시를 올바르게 해석하지 못합니다.
jdb

타르 --transform는 맥 OS에서 작동하지 않는 것
알렉산더 밀스

MacOS에서는 macports와 gnutar를 설치하여 --transform 옵션을 얻을 수 있습니다. 또는 gnutar를 직접 다운로드하여 컴파일하십시오.
Marnix A. van Ammers

1

새 디렉토리를 만드는 것이 마음에 들지 않으면 ...

mkdir dir_q; tar -C $ _ -xzvf archive.tar.gz

또는 새 디렉토리를 작성하고 파일을 해당 디렉토리에 압축을 풀고 상위 디렉토리에서 다시 압축을 풀어 파일 이름을 추출 된 버전에 포함 시키십시오. 그렇게하면 아주 긴 호출을 기억할 필요가 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.