대규모 tar.gz 아카이브에서 단일 폴더를 추출하는 방법은 무엇입니까?

대규모 tar.gz 아카이브에서 단일 폴더를 추출하는 방법은 무엇입니까?

이 명령을 사용하고 있습니다5GB파일

tar -zxvf archive.tar.gz /folder/in/archive

이것이 올바른 접근 방식입니까? 명령줄 출력이 없으면 시간이 오래 걸리는 것 같습니다...

답변1

tar상대 경로 저장기본적으로. 절대 경로를 저장하려고 하면 GNU tar는 다음과 같이 말할 것입니다:

tar -cf foo.tar /home/foo
tar: Removing leading `/' from member names

특정 폴더를 추출해야 하는 경우 tar 파일의 내용을 살펴보세요.

tar -tvf foo.tar

그리고 정확한 파일 이름을 기록해 두십시오. 내 파일의 경우 다음과 같이 추출 foo.tar할 수 있습니다 ./home/foo/bar

tar -xvf foo.tar home/foo/bar # Note: no leading slash

따라서 아니요, 귀하가 게시한 방식은 (반드시) 올바른 방식이 아닙니다. 선행 슬래시를 생략해야 합니다. 절대 경로를 에뮬레이트하려면 cd /먼저 그렇게 하고 슈퍼유저인지 확인하세요. 또는 동일한 작업을 수행합니다.

tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option

tar경로를 상대 경로로 변환하는 데는 매우 분명하고 타당한 이유가 있습니다. 하나는 원본 소스 외부의 아카이브를 복원하는 기능입니다. 또 하나는 안전이다. 해당 파일이 현재 작업 디렉터리에 나타날 것으로 기대하면서 아카이브를 추출할 수 있지만 실수로 시스템 파일(또는 자신의 작업)을 다른 곳에 덮어쓸 수 있습니다.

-P참고: 이 옵션을 사용하면tar ~ 할 것이다아카이브 절대 경로. 따라서 대용량 아카이브의 내용을 추출하기 전에 항상 확인하는 것이 좋습니다.

관련 정보