mkdir -p
tar 명령에서 존재하지 않는 대상 디렉터리를 정의하고 tar가 자동으로 디렉터리를 생성하는 방법과 유사하게 대상 디렉터리를 생성할 수 있습니까 ?
를 사용하여 출력을 디렉터리로 리디렉션할 수 있다는 것을 알고 있지만 tar -C /target/dir
대상 디렉터리가 없으면 작동하지 않습니다.
답변1
mkdir -p /target/dir && tar -C /target/dir
답변2
tar -xvf bash.html_node.tar.gz --one-top-level
tar 명령의 매뉴얼 페이지에서
--one-top-level[=DIR]
모든 파일을 다음으로 추출합니다.목차, 또는 인수 없이 사용되는 경우 아카이브의 기본 이름(인식되는 표준 압축 접미사 제외
--auto-compress
)으로 명명된 하위 디렉터리로 이동합니다.
- - - 시험
테스트 1
tar zxvf ../aaa.tgz --one-top-level
aaa/
aaa/222
aaa/111
tree aaa
aaa/
├── 111
└── 222
// tgz 이름이 아카이브의 root_dir과 동일하면 다른 효과는 없습니다.
테스트 2
mv ../aaa.tgz ../bbb.tgz
tar zxvf ../bbb.tgz --one-top-level
aaa/
aaa/222
aaa/111
tree bbb
bbb
└── aaa
├── 111
└── 222
// tgz 이름이 아카이브의 root_dir과 다른 경우 최상위 디렉터리를 만듭니다.
답변3
이것은 나에게 더 의미가 있습니다.mkdir -p /create/folder && tar -zxf haroopad-v0.13.0_x64.tar.gz -C /create/testfolder
mkdir
스위치 를 잘 이해하지 못하지만 폴더를 만드십시오 -p
. &&
두 번째 명령을 실행할 수 있습니다. 나는 일반적인 tar 스위치를 사용했지만 결국 -C
디렉토리를 변경하고 원하는 위치로 추출했습니다.
답변4
위의 모든 답변은 작동하지만 tar 내부의 내용이 디렉토리 내부에 있으면 원하는 방식으로 작동하지 않습니다.
그래서 이 간단한 트릭이 저에게 효과적이었습니다.
tar -xvzf v<tarball>.tar.gz && mv ./<INSIDE_FOLDER> ./<NEW_FOLDER>