Macの右クリックからデフォルトの圧縮機能で作成された.zipファイルをWindows環境で解凍すると.DS_Storeというファイルが含まれる。また、文字化けを起こすこともある。(Macユーザーなら一度は経験したことがあるのではないだろうか..。)
なんとかこれを回避するために僕はわざわざMacのターミナルからzipコマンドを打ってzipファイルを作成していたのだが、これがまた手間なのだ..。
そんなことするくらいならMacのAutomatorに登録して右クリックから実行するように設定してしまおう!!
というのが今回の記事です。
AutomatorにZip圧縮アクションを追加
Automator.appを起動させます。
(Command + スペース キーを入力し、Spotlight検索でAutomatorと入力等)
クイックアクションを作成
Automatorを開いたらクイックアクションを選択します。

以下の手順でアクションを設定していきます。
①ユーティリティを選択
>>②シェルスクリプトを実行
>>③スクリプト入力ウィンドウが表示される

スクリプトを実行させる
クイックアクションを実行したときにスクリプトを実行するように記述していきます。
以下のように設定しておきます。
ワークフローが受け取る現在の項目: ファイルまたはフォルダ
検索対象: Finder.app
シェル: /bin/bash
スクリプトウィンドウ: 以下のスクリプトをコピペ

スクリプトウィンドウには以下のコードをコピペします。
for f in "$@"
do
# 対象のファイル名を取得
name="${f##*/}"
# 対象のファイルがあるディレクトリのパスを取得
path="${f%/*}"
cd "$path"
if [ -d "$f" ];then
# 選択対象がディレクトリの場合
zip -r "$name" "$name" -x "*.DS_Store"
else
# 選択対象がファイルの場合
filename=$(echo "$f" | cut -f 1 -d '.')
zip "$filename".zip "$name"
fi
done
ここまで設定ができたらファイル
>>保存
を行います。
保存名はzip圧縮のアクションと分かりやすいように名前をつけましょう。(僕は普通にzip圧縮としました。)
右クリックでWindows互換のzipファイルを作成
クイックアクションの設定が終わりましたら、適当なフォルダを選択し、右クリック>クイックアクションを選択すると...

zip圧縮の項目が出ましたね。これを実行すると.DS_Storeを含まないzipファイルが作成されます。
Windowsでこのファイルを展開しても文字化けなく、かつ.DS_Storeも存在しないクリーンなzipファイルが作成できていました。
ということでMacのFinderから.DS_Storeを含まずzip圧縮する手順でした。
コメント