압축된 아카이브에서 특정 폴더 내용만 특정 디렉터리로 추출합니다.

압축된 아카이브에서 특정 폴더 내용만 특정 디렉터리로 추출합니다.

이것은 SO에 매우 가깝습니다.압축된 아카이브에서 특정 폴더만 특정 디렉터리로 추출하는 방법은 무엇입니까? 가까운 것이 필요하지만 항상 내용뿐만 아니라 내용이 포함된 폴더를 가져옵니다.

 #note $2 is passed in and would be == "magefoler"
 unzip /srv/file.zip "$2-master/*" -d /srv/www/mage/

이런 구조의 지퍼를 얻으려면 어떻게 해야 하나요?

file.zip
 |-magefoler-master/
 |-magefoler-master/app/*tons of files
 |-magefoler-master/skin/*tons of files

다른 폴더로 이동해야 하는데 이동할 수 없습니다 . 및 폴더 magefoler만 있으면 됩니다 . 이는 항상 이 두 폴더라는 의미는 아니며 단지 그 안에 있는 하위 콘텐츠, 파일 또는 폴더를 삭제해야 한다는 의미입니다. 피하려고 하는 것은 모든 것을 폴더로 내보낸 다음 거기에서 이동하는 것입니다.appskinmagefoler

내가 찾고 있는 최종 결과는 /mage다음과 같은 폴더에 출력한 zip 파일에서 나온 것입니다.

/srv/www/mage/
     |--/mage/app/*tons of files
     |--/mage/skin/*tons of files

답변1

여기에 직접 압축을 풀 수 있나요?

$ unzip /srv/file.zip "$2-master/*" -d /srv/www/

그런 다음 폴더를 magefoler-master다음으로 이동하거나 이름을 바꿉니다 mage.

$ mv /srv/www/magefoler-master /srv/www/mage

대안?

과거에 이 정확한 문제를 조사하면서 mv.

  1. Gilles가 권장하는 대로 FUSE를 사용하세요.압축을 풀 때 하위 디렉토리를 생성하지 않도록 unzip/zip을 강제하는 방법은 무엇입니까?
  2. zipnote이 도구를 사용하여 zip 아카이브의 파일을 압축을 풀기 전에 이동하세요.

관련 정보