루트 폴더없이 아카이브의 압축을 풀고 전체 계층 구조를 유지하는 방법은 무엇입니까? 폴더 가 제공됩니다 . foo/ something.txt

.tar아카이브 가 있고 압축을 풀면 다음 foo과 같은 추가 항목이 포함 된 단일 폴더 가 제공됩니다 .

foo/
  something.txt
  another.txt
  bar/
    something-else.txt

.tar루트 폴더를 “건너 뛰기”( foo이 경우) 명령을 수정하고 해당 폴더의 모든 내용을 다음과 같이 내 cwd로 직접 추출 하는 방법이 있습니까?

something.txt
another.txt
bar/
  something-else.txt


답변

쉬운. 다음 --strip-components=1과 같이 아카이브에서 사용 하십시오.

tar -xf archive.tar --strip-components=1

공식 tar매뉴얼 페이지에 설명 된대로 :

–strip-components = NUMBER

추출시 파일 이름에서 NUMBER 개의 주요 구성 요소 제거

경로가 구성되는 경우 인 것을 논리 foo/something.txt그 경로의 제 “성분”될 foo/정도로 --strip-components=1효과적으로 드롭 것이다 foo/경로에서 foo/something.txt.