압축된 아카이브의 특정 폴더 콘텐츠만 특정 디렉터리로 추출합니다.

압축된 아카이브의 특정 폴더 콘텐츠만 특정 디렉터리로 추출합니다.

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

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

이 구조가 포함된 zip을 가져오려면 어떻게 해야 합니까?

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 아카이브 내에서 파일을 이동합니다.

관련 정보