Mac で「デスクトップにショートカット」

Windows の右クリックメニュー「送る」の、「デスクトップ(ショートカット)」。
 デスクトップにショートカットを作る、というもので、けっこう便利に使っている。同じものが Mac にないのは少し寂しいので、Automator で作ってみた。

デスクトップにエイリアス

アプリケーションフォルダ>ユーティリティ内の「Automator」を起動して、新規書類を作る。書類の種類は「クイックアクション」を選択。

クイックアクションは、右クリックした時に出てくる「サービスメニュー」に追加できるワークフローだ。
 右クリックメニューからアクセスできるし、システム環境設定で独自のキーボード・ショートカットを設定することもできるので、クイックアクションは使い勝手がいい(設定は「キーボード」>「ショートカット」タブ>「サービスメニュー」)。

「デスクトップにエイリアス」は簡単に作れる。
 下の画像のように、検索窓に「エイリアス」と打ちこむと、「新規エイリアス」というアクションが出てくる。それをドラッグ&ドロップでワークフローに追加。
「ワークフローが受け取る現在の項目」を「ファイルまたはフォルダ」に、保存先をデスクトップにすれば、もう完成だ。

ファイルメニューから保存を選び、適切な名前をつけて保存する。ここでは単に「エイリアス」とした。
 さっそく試してみると、ちゃんとサービスメニューに追加されている。

実行すると、いい感じにデスクトップにエイリアスがあらわれる。
 この、クイックアクション・ワークフローの保存先は、「~/ライブラリ/services/」である。
 Finder でcommand + shift + G を押して、上記のパスに移動すると「エイリアス.workflow」という書類を確認できる。
 使わなくなったら、この書類をゴミ箱に入れてしまえばいい、というわけだ。

デスクトップにシンボリックリンク

エイリアスもけっこうだが、シンボリックリンクをデスクトップに作りたい時もある。
 シンボリックリンクは、UNIX におけるエイリアスのようなものだ(たぶん)。
 エイリアスとは、大きな違いがひとつある。「cd」コマンドでアクセスできるのである。ターミナルから cd でエイリアスに入ろうとすると、「これディレクトリじゃないよ」というようなメッセージしか返ってこない。
 シンボリックリンクは入れてしまうのだ。シェルスクリプトなどを頻繁に使う場合は、シンボリックリンクのほうが便利だったりする。

シンボリックリンクのサービスメニューも、Automator のクイックアクションで作る。
 検索窓に「シェルスクリプト」と打ちこむと、「シェルスクリプトを実行」というアクションが出てくるので、それをワークフローにドラッグする。
「ワークフローが受け取る現在の項目」は「ファイルまたはフォルダ」にしておく。
「シェル」は「/bin/sh」。
「入力の引き渡し方法」は「引数として」を選択する。
 スクリプトは以下のようなものを書いた。

for f in "$@"
do
	sym=`basename "$f"`
	if test `dirname "$f"` = '/Users/'`whoami`'/Desktop'; then
		if ls -l "$f" | grep -sq '\->'; then
			unlink "$f"	
		else
			ln -s "$f" ~/Desktop/"$sym"_link	
		fi
	else
		ln -s "$f" ~/Desktop/"$sym"
	fi	
done

ファイルやフォルダを選択して実行すると、デスクトップに同じ名前のシンボリックリンクを作る。デスクトップ上のファイルやフォルダの場合は、名前の末尾に「_link」が追加される。
 また、デスクトップにあるシンボリックリンクを選択して実行した場合は、unlink(削除)する、ということにした。

なお、このようにして作成したクイックアクションは、右クリックメニューの「クイックメニュー」にも追加される。クイックメニューのカスタマイズはシステム環境設定の「機能拡張」>「Finder」でおこなう。