
디렉토리를 압축하고 일부 하위 디렉토리를 제외하고 싶습니다. 다음과 같은 구조가 있다고 가정해 보겠습니다.
directory
subdirectory 1
subdirectory 2
project 1
html
directory 1
vendor
node_modules
... (other directories)
project 2
html
directory 2
vendor
node_modules
... (other directories)
전체 메인 디렉토리를 ZIP으로 압축하고 싶지만 다음과 같은 경로는 제외하고 싶습니다.
subdirectory2/*/html/vendor/**
subdirectory2/*/html/node_modules/**
어디:
*
- 1레벨 디렉토리입니다.**
- 모든 파일 및 하위 디렉터리가 포함된 디렉터리입니다.
문제는 그것들 project 1
과 가 project 2
매우 역동적이라는 것입니다. 그것들이 여러 개 있습니다. 또한 vendor
디렉토리(이론적으로도 node_modules
)는 예를 들어 다른 위치에 배치될 수 있으므로 하위 디렉토리만 제외하고 프로젝트의 지정된 html 디렉토리에 정확하게 위치한 특정 하위 디렉토리만 project 1/html/public/vendor
제외하고 싶습니다 .vendor
vendor
명령 만 사용하여 그렇게 복잡한 것을 만들 수 있습니까? zip
아니면 이를 위해 일부 bash 스크립트를 작성해야 합니까?
차이점이 있다면 MacOS를 사용하고 있습니다.
지금까지 내가 달성한 것은 다음과 같습니다.
cd directory && zip test-zip.zip * -r -T -x */*/html/vendor/** */*/html/node_modules/**
거의 작동하는 것 같지만 빈 공급업체 및 노드 모듈 디렉터리가 생성됩니다(그러나 해당 콘텐츠는 포함되지 않음).
답변1
해결책은 다음과 같습니다.
cd directory &&
zip test-zip.zip * -r -T -x "*/*/html/vendor/" "*/*/html/node_modules/" "*/*/html/vendor/**" "*/*/html/node_modules/**"
따라서 이 디렉토리와 해당 디렉토리의 모든 항목을 제외하고 유효한 방식으로 확장되도록 모든 항목을 따옴표로 묶습니다.