Attention! Translated article might be found on my English blog.

2015年6月17日水曜日

Finder上で.rarを解凍するAutomatorワークフローを作ってみた

-- 2017/03/08追記 --
App StoreのThe Unarchiverというのが.rarに対応してるので、これを使うと楽です。
-- 2017/03/08追記終わり --

たまに.rarという形式で圧縮されているファイルを扱うことがあります。
StuffIt Expanderだとエラーになったりディレクトリが展開されないことがあるので
unrarというコマンドをターミナルから使っていました。
が、最近それも面倒になってきたのでFinderから直接解凍できるワークフローを作ってみました。

unrar.zip - Dropbox

ワークフロー実行にはコマンドラインから実行可能なunrar本体が必要です。

こちらの環境では/usr/local/bin/unrarに配置されており、それを直接参照しています。
(Homebrewでインストールしている場合はこのまま動くと思います)

設置:

zipを解凍した後、.workflowファイルを、~/Library/Services以下に置いてください。
~/Library以下の参照方法については、Automator用ワークフローファイル(.workflow)を置く場所をごらんください。

使用:

Finder上でファイルを右クリックすると、unrarという項目が出てきます。



unrarメニューを実行すると、ファイルと同じフォルダに解凍されます。

問題点:

フォルダを選択しても再帰的に処理しません。
また、解凍場所に既にフォルダが存在する場合は動作しないと思います。

その他:

unrarへのパスが違っていたり上記問題点を修正する場合、
Automatorでワークフローを直接編集してください。

参考までに使用しているbashスクリプトを以下に示します。
UNRAR=/usr/local/bin/unrar

if ! type $UNRAR; then
    echo $UNRAR not found
    exit 1
fi

for f in "$@"
do
    d=`dirname "$f"`
    cd $d
    $UNRAR x "$f"
done

再帰についてはr、上書きについてはo[+|-]というオプションがあるようなので
そちらを使ってみてください。