디렉토리를 제외하고 디렉토리를 압축하는 파일?


32

하위 디렉토리와 파일을 제외한 디렉토리를 압축해야합니다. 나는 이것을 사용했다 :

zip -r zipfile.zip . -x ".*" -x "app/bower_components" -x "node_modules" -x "*.zip" -x "node_modules"

성공하지 않고; 폴더 응용 프로그램 안에있는 node_modules동안 주 폴더에있는 폴더입니다bower_components


결과는 무엇이며 예상 결과는 무엇입니까?
DEN

모든 하위 디렉토리 를 제외 하거나 일부만 제외 하시겠습니까?
Sergiy Kolodyazhnyy 2016 년

답변:


36

나는 단순히 당신이 원하는 것을 추측합니다.

-x ".*"

점으로 시작하는 모든 파일을 제외

다음과 같이하십시오 :

-x .\*

모든 파일을 제외하십시오 (파일 이름에 점이 있음)

다음과 같이하십시오 :

-x \*.\*

-

-x "app/bower_components" -x "node_modules"

이 디렉토리와 그 안의 모든 파일을 제외하십시오

다음과 같이하십시오 :

-x app/bower_components/\* -x node_modules/\*

-

-x "*.zip"

모든 zip 파일 제외

다음과 같이하십시오 :

-x \*.zip

node_modules를 두 번 제외합니다


2
감사합니다. 다양한 게시물을 사용하여 도착했습니다 : zip -r * app / * -x \ app / bower_components / * -x \ node_modules / * -x * .zip
arpho

@arpho 위의 의견은 저에게 도움이 될 것으로 보이는 답변이어야합니다 ...
chesedo

7

이와 같은 것이 트릭을 수행해야합니다.

zip -r zipped.zip dir1/ -x */\.* *.git* \.* *.zip *.csv *.json *.rb *.bak *.swp *.back *.merge *.txt *.sh dir1/node_modules/**\* dir1/bower_components/**\* dir1/dist/**.*

다음 -x은 제외 할 디렉토리 및 파일 (확장자) 유형 목록입니다.


이제는 **\*재귀 제외를위한 것임을 알고 있습니다. 많은 감사합니다.
Duc Tran

6

디렉토리가 git 저장소라고 가정하면 (질문에 따라 판단 할 수 있음) .gitignore파일 에서 제외하려는 디렉토리를 추가 하고 git archive명령을 사용 하여 디렉토리의 내용을 압축 할 수 있습니다.

git archive --format=zip HEAD -o zipfile.zip

예제에서 .gitignore파일은 다음과 같아야합니다.

node_modules
app/bower_components

3

이것은 우분투 16.04에서 나에게 완벽하게 작동합니다.

sudo zip -r /home/user/backup/$(date +"%Y-%m-%d")/home_user.zip /home/user -x "*backup*" -x "*.cache*" -x "*test*"

0

모든 프로젝트에서 다음과 같이 node_modules를 건너 뛰십시오.

for i in */; do zip -r "${i%/}.zip" "$i" -x "*/\node_modules/*" ; done
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.