多くの既存の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ファイルを一度に1つずつ処理できます。

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

または一行で

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

関連情報