내가 명령을 실행할 때
zip -r --include '*.rb' '*.sh' '*.zsh' '*irb*' tmp/small_v.zip bin
오류 메시지가 나타납니다zip 오류: 잘못된 명령 인수(선택할 항목 없음)
명령을 다음과 같이 쓰면
zip -r tmp/small_v.zip bin --include '*.rb' '*.sh' '*.zsh' '*irb*'
효과가있다. 왜? zip 매뉴얼 페이지(구체적으로 --include 옵션)를 살펴보면 다음과 같은 사실을 발견했습니다.
명령줄 끝에 -i를 추가해야 하는 명령 구문이 사용되었지만 이 버전에서는 실제로 모든 곳에서 -i(또는 --include)를 허용합니다.. 파일 목록은 -로 시작하는 다음 인수, 명령줄 끝 또는 목록 종결자 @(@ 인수만 해당)에서 종료됩니다.
이를 통해 나는 두 버전의 명령이 모두 작동해야 한다는 결론을 내렸습니다.
저는 MacOS Sierra에서 실행되는 zip 3.0을 사용하고 있습니다.
답변1
이 예에서 중요한 부분은
파일 목록은 로 시작하는 다음 인수
-
, 명령줄 끝 또는 목록 종결자@
(인수만 해당 )에서@
종료됩니다 .
당신이 글을 쓸 때
zip -r --include '*.rb' '*.sh' '*.zsh' '*irb*' tmp/small_v.zip bin
tmp/small_v.zip
및 bin
에 제공된 파일로 처리되므로 명령 --include
은 zip
대상 파일과 처리할 파일 없이 종료됩니다.
--include
할 수 있는어디에나 배치할 수 있지만 해당 인수는 여전히 의미가 있어야 하며 나머지 인수는 식별 가능해야 합니다. 다음과 같이 명령을 작성할 수 있습니다.
zip --include '*.rb' '*.sh' '*.zsh' '*irb*' -r tmp/small_v.zip bin
대신 -r
인수를 사용하여 파일 목록의 끝을 식별 하거나 목록을 종료하는 데 --include
사용하세요 .@
zip -r --include '*.rb' '*.sh' '*.zsh' '*irb*' @ tmp/small_v.zip bin
--include
이 섹션의 끝에 매우 유사한 예가 있습니다.zip(1)
맨페이지.
답변2
좀 이상해서 자세히 살펴보진 않았지만
zip -r --include="server_*" ...
CI/CD 설정에서 실행되도록 sth로 시작하는 파일을 포함합니다.