이것은 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
만 있으면 됩니다 . 이는 항상 이 두 폴더라는 의미는 아니며 단지 그 안에 있는 하위 콘텐츠, 파일 또는 폴더를 삭제해야 한다는 의미입니다. 피하려고 하는 것은 모든 것을 폴더로 내보낸 다음 거기에서 이동하는 것입니다.app
skin
magefoler
내가 찾고 있는 최종 결과는 /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
.
- Gilles가 권장하는 대로 FUSE를 사용하세요.압축을 풀 때 하위 디렉토리를 생성하지 않도록 unzip/zip을 강제하는 방법은 무엇입니까?
zipnote
이 도구를 사용하여 zip 아카이브의 파일을 압축을 풀기 전에 이동하세요.