압축 해제 대상 디렉토리를 지정하는 방법


21

압축을 푼 대상 디렉토리를 하드 코딩 할 수 있도록 linux zip 명령에 옵션이 있습니까? 예를 들어, ./mydir 파일을 myzipfile.zip으로 압축하고 싶지만 unzip 명령으로 특정 디렉토리 "projx"를 만들고 ./mydir 아래에있는 파일을 확장하려고합니다.

zip -r myzipfile.zip mydir (-option to expand into 'projx' when unzipped? )

답변:


18

적어도 Info-ZIP에는 그런 옵션이 없습니다. projx 디렉토리를 직접 작성하고 파일을 이동 / 복사 한 다음에 전달해야합니다 zip.

디렉토리가 이미 존재하면 옵션 -d을 전달 unzip하여 추출 할 대상 디렉토리를 지정하십시오.


4

그렇게하는 또 다른 방법이 있습니다. 다음 방법을 사용하여 zip 파일의 전체 내용을 병합 할 수 있습니다. 대상 디렉토리는 " projx "이며 다음 명령을 실행하십시오.

cd /projx && unzip -j /path/to/myzipfile.zip

옵션 -j 는 "정크 경로"라고하며 디렉토리 구조를 추출하는 대신 각 파일을 현재 디렉토리로 덤프합니다.


0

특정 명령 줄 옵션에 대해 잘 모르지만 다음 명령을 사용하여 목표를 달성 할 수 있습니다.

ln -s mydir projx
zip -r myzipfile.zip projx
rm projx

첫 번째 명령은 심볼릭 링크를 생성하여 mydir를 통해 파일에 액세스 할 수 있습니다 projx. 그런 다음 Info-ZIP(버전 2.31에서 테스트)을 사용하여 기호 링크가 참조 해제되고 (이를 지정하지 않으면 이것이 기본값 -y임) 파일이 재귀 적으로 저장됩니다.

adding: projx/ (stored 0%)
adding: projx/foo.1 (deflated 23%)
adding: projx/bar.2 (deflated 73%)
...

폴더 이름도 파일에 저장되므로 추출시 디렉토리 projx가 생성됩니다.

그러나 절대 경로를 저장할 가능성을 생각할 수는 없지만 어쨌든 나쁜 생각입니다.


절대 경로는 option을 지정하여 MacOS에서만 작동합니다 -jj. 다른 운영 체제에서는 모든 선행 경로를 제거하여 반대 방향 (매우 영리한 디자인)으로 이어지는 옵션 만 -j지원되며 -jj로 해석됩니다 -j.
scai
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.