많은 기존 zip 파일에 디렉터리를 추가하기 위한 터미널 명령

많은 기존 zip 파일에 디렉터리를 추가하기 위한 터미널 명령

터미널에서 다음 명령(@Theophrastus의 답변에서 발견)을 사용하여 쌍을 이루는 파일의 이름을 유지하면서 동일한 이름을 가진 모든 *.html 및 *.js 파일을 압축했습니다.

이름은 같지만 확장자가 다른 파일을 압축하는 방법은 무엇입니까?

for Q in *;do H=${Q%%.*};zip "${H}.zip" "$Q";done

또한 zip 파일에 이미지라는 폴더를 포함하고 싶지만 위 명령의 기능을 이해하지 못합니다.

구조는

zipping

|-   images
      bitmap1.jpg
      bitmap2.png

file1.html
file1.js
file2.html
file2.js
file3.html
file3.js
file4.html
file4.js
file5.html
file5.js

완료되면 zip 파일의 이름은 시작과 동일해야 하며, 이는 html 및 js 파일에서 공유하는 이름입니다.

답변1

zip쉘이 와일드카드 문자를 여러 파일 이름으로 바꾸기 때문에 명령의 zip 파일 인수로 와일드카드 문자를 지정할 수 없습니다 . 대신 루프를 사용하여 여러 zip 파일을 한 번에 하나씩 처리할 수 있습니다.

for file in *.zip
do
    zip -ur "$file" images
done

아니면 한 줄로

for file in *.zip ; do zip -ur "$file" images ; done

관련 정보