我在终端中使用以下命令(从 @Theophrastus 的答案中找到)来压缩所有具有相同名称的 *.html 和 *.js 文件,同时保留这些配对文件的名称。
for Q in *;do H=${Q%%.*};zip "${H}.zip" "$Q";done
我还想在 zip 文件中包含一个名为 images 的文件夹,但不明白上面的命令的作用。
结构是
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
因为 shell 会将其替换为多个文件名。相反,您可以使用循环来逐个处理多个 zip 文件。
for file in *.zip
do
zip -ur "$file" images
done
或在一行中
for file in *.zip ; do zip -ur "$file" images ; done