tar를 사용하여 폴더 내용을 추출하시겠습니까?

tar를 사용하여 폴더 내용을 추출하시겠습니까?

하나 있다여기에도 비슷한 질문이 있습니다.

올바르게 이해했다면 첫 번째 대답은 폴더의 내용을 추출할 수 없고 폴더 내의 특정 파일만 추출할 수 있다는 것입니다.

두 번째 답변에서는 이 --directory옵션을 사용합니다. 이것이 바로 내가 원하는 것처럼 보이지만 아카이브 내의 디렉터리에서 파일을 추출하는 대신 options 에 표시된 디렉터리에 파일을 출력합니다 --directory.

폴더를 tar하면 루트 디렉터리부터 시작하는 전체 경로가 포함됩니다. 그래서 그것은 home/ole/folder/thestuff. folder/thestuff현재 있는 폴더에 압축을 풀고 싶지만 home/ole.

아이디어?

답변1

올바르게 이해했다면 첫 번째 대답은 폴더의 내용을 추출할 수 없고 폴더 내의 특정 파일만 추출할 수 있다는 것입니다.

아니요, 상대 파일 이름과 절대 파일 이름에 대해 이야기하고 있습니다. /some/path사이의 차이some/path

tarfile의 내용을 봅니다 tar tf file. /path/to/folder로 나열되면 폴더를 지정할 수 없습니다 path/to/folder.

추출할 (올바른) 폴더를 제공하는 데에는 문제가 없습니다.

  • 추출할 파일 나열

tar tf file.tar path/to/folder

  • 파일의 압축을 푼다(현재 디렉터리에)

tar xf file.tar path/to/folder

예를 들어:

확인해야 할 사항:

$ tar tf ../test.tar
a/
a/3
a/2
a/1
b/
b/3
b/2
b/1

a 폴더의 압축을 푼다

$ tar xf ../test.tar a

그것이 무엇을 추출하는지보세요

$ find .
.
./a
./a/3
./a/2
./a/1

답변2

내 경우에는 다음과 같이 할 수 있습니다.

tar -xvzf archive.tar.gz --strip-comComponents=2

이렇게 하면 home/ole경로에서 해당 경로가 제거되고 아카이브의 해당 경로 아래에 있는 모든 항목이 현재 디렉터리로 추출됩니다.

관련 정보