私が使用するファイルを圧縮するには:
Zip -r 1.Zip 1.graffle
これは期待どおりに機能します。しかし、Zipを変更して、各Zipファイルが1:1マッピングである現在のフォルダー内の各ドキュメントをZipするにはどうすればよいですか。つまり、すべてのファイルが1つのZipファイルに追加されるわけではありません。
これを達成するために次のコマンドを修正できますか? ":
Zip -r files.Zip .
ファイルごとに1回Zip
を呼び出すことができます。
for f in *.graffle; do Zip -r "${f%%.*}.Zip" "$f"; done
これはすべての.graffle
ファイルに対して実行され、それぞれでZip
を呼び出します。アーカイブ名は、ファイル名から.graffle
拡張子を引いたものに基づいて設定されます。拡張子は 文字列操作 で削除されます。
複数の拡張子のファイルを圧縮する場合は、それらを先頭に追加するだけです。 for f in *.graffle *.jpg
など。
一度に1つのファイルを処理するため、これは少し遅い場合があることに注意してください。 GNU parallel
(brew install parallel
を使用して Homebrew 経由でインストールできます):
parallel 'Zip -r {.}.Zip {}' ::: *.graffle
これにより、複数のコアを使用してすべてのZipコマンドが並行して実行されるため、ファイルが多い場合ははるかに高速になります。ここで、{.}
は入力ファイル名から拡張子を削除し、{}
はファイル名自体に置き換えられます。