타르로 포장됨

타르로 포장됨

파일을 패키징하려고 합니다.

file1
folder2/hello
folder2/world
file3

사용자 정의 폴더에 캡슐화되도록 tar 파일에 저장하면 다음 tar -tvf archive.tar과 같습니다.

mycustomfolder/file1
mycustomfolder/folder2/hello
mycustomfolder/folder2/world
mycustomfolder/file3

현재 이 문제를 해결하기 위해 나는:

  • file1생성 folder2하고 archive(x) 합니다 file3.
  • 폴더를 생성합니다 mycustomfolder.
  • 아카이브(x)를 다음으로 추출합니다.mycustomfolder
  • 프로필 만들기(y)mycustomfolder

나는 그들이 이 일을 향한 한 단계 또는 더 나은 방법이 될 수 있다고 생각하지 않을 수 없습니다.

답변1

아카이브를 자체 디렉토리에 추출하려면(일반적으로 이 작업을 수행하지 않는 디렉토리는 혼란스러울 수 있으므로 더 좋습니다) 디렉토리를 생성하고 콘텐츠 트리를 그 디렉토리로 이동/복사하면 됩니다. , 두 번째 예에 표시된 대로:

mycustomfolder/file1
mycustomfolder/folder2/hello
mycustomfolder/folder2/world
mycustomfolder/file3

그 다음에 tar -cvf myarchive.tar mycustomfolder. 발췌, tar -xvf myarchive.tar.

먼저 디렉토리를 생성하고 싶지 않다면,파일 이름을 변환하고 디렉터리 접두사를 추가할 수 있습니다.

tar --xform="s%^%mycustomfolder/%" -cvf myarchive.tar file1 folder2 file3

구문을 사용하여 변환(참조 man tar) . 이름이 지정된 폴더가 생성되었지만 (== 이상한 동작 IMO) (정확하게는) "잘못된 변환 표현식"이었기 때문에 구분 기호를 대신 sed사용했습니다 .%/s/^/mycustomerfolder\//mycustomfolder\s/^/mycustomfolder//

관련 정보