環境: macOS Monterey
設定方法
-
⌘キー+Spaceキーを押してSpotlight検索を開き、「Automator.app」と入力してAutomatorを起動する
-
ファイル選択ダイアログが表示された場合は、左下の「新規書類」を選択
-
以下の画像の画面が表示されたら、「クイックアクション」を選択して右下の「選択」を押す
-
左上の検索窓に「シェルスクリプトを実行」と入力すると、以下の画像のように1つだけ項目が表示されるので、この「シェルスクリプトを実行」アクションを右側の灰色の領域にドラッグ&ドロップする
正しく操作できていれば以下の画像のように表示される。
-
以下のように項目を指定する
- ワークフローが受け取る現在の項目: 「ファイルまたはフォルダ」
- 検索対象:「Finder.app」
- シェル:「/bin/bash」
-
「cat」のみ表示されているテキスト入力欄に、以下のコマンドをコピペする
Shellfor target in "$@" do # 対象のファイル名を取得 name="${target##*/}" filename="$name" # 対象のファイルがあるディレクトリのパスを取得 path="${target%/*}" cd "$path" if [ -f "$f" ];then # 選択対象がファイルの場合 filename=$(echo "$f" | cut -f 1 -d '.') fi zip -r "${filename}.zip" "$name" \ -x "*.DS_Store" \ -x "*._*" \ -x "*.icloud" done
-
⌘キー+Sまたはメニューバーの「ファイル」→「保存」から保存する。ファイル名がコマンド名になるので、わかりやすいものにしておくと良い
(保存場所はどこでも良いが、iCloudのフォルダに入れておくとバックアップになる)
zipコマンドの説明
-
-r "${filename}.zip"
: 選択したファイルorフォルダの名前でzipを作る -
-x "*.DS_Store"
: mac特有の.DS_Store
ファイルを除外する -
-x "*._*"
: mac特有のゴミファイルを除外する -
-x "*.icloud"
: iCloud上にのみ存在する(ダウンロードされていない)ファイルを除外する
使い方
- Finderで圧縮したいファイルorフォルダを選択
- 右クリックで出てくるメニューのうち、「クイックアクション」から設定したコマンド名を選択すると実行される
参考
(このページの焼き増しになってしまった気もする)