터미널에서 다음 명령(@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