Mac OS X 特有の Command Line App と At

Date
2007-06-06 (Wed)
Category
Mac OS X

MacWiki::OSXの固有コマンドというページに Terminal.app などから利用できる、コマンドラインアプリケーションが紹介されています。open や defaults などは普段からまぁたまにですが使いますし、sips などは海上忍さんの OS X ハッキングで紹介されていたので知ってはいました。この Wiki はよくまとまっているので、要ブックマークですね。今回はこの中などから少し。

GetFileInfo / SetFile

ファイルをダブルクリックすると、適切なアプリが勝手に開いて編集(あるいは閲覧)が始まる、というのは今では当たり前のような事ですが、結構すごいことです。Windows では、ファイル名の拡張子によって、アプリケーションが関連づけられています。拡張子のみなので、同じ拡張子を持つファイルは全て等しいデフォルトアプリケーションが設定されます。例えば、Dreamweaver で .html ファイルを扱っている人は、Firefox でダウンロードした .html ファイルもダブルクリックしちゃうと、Dreamweaver が開いちゃうんですね。ん〜、不便。

Mac はかつて System 7 と呼ばれていた頃、ほとんど拡張子を使っていませんでした。OS 8 になって PC Exchange が標準装備になったり、インターネットが流行りだしてからは互換性のため拡張子を使っていましたが、それでもある書類をダブルクリックした時に、どのアプリケーションを使って開くかは、拡張子に依りませんでした。Dreamweaver で編集した .html ファイルと、Firefox でダウンロードした .html ファイルはどちらもダブルクリックすればそれぞれのアプリケーションで開く事が出来たんですね。

どうやっていたかというと、各ファイルが resource folk という名で知られる meta data 構造を、実データとは別に持っていたのですね。まぁそれはそれで、データ互換性などの問題を起こしましたが、上のような状況では、便利だったと思います。

それが Mac OS X になって、退化というか拡張子必須な感じになってしまっていや〜ん、だったんですけど、仕組み自体は残っているんですね(どうやってんのか知らないけど)。前振りが長くなりましたが、GetFileInfo / SetFile を使えば、昔懐かしの Filetype / Creator 属性を変えられます。( photoshp version 5 が BIN8 とか、Moview Player が MooV とか…)

例えば僕は PDF を見るのに Adobe Reader ではなく、Preview.app で見たい派なんですが、それでもたまに Safari の中で .pdf へのリンクをクリックして、しまったと思いつつ、Adobe Reader Plugin が立ち上がるのをまって、デスクトップに保存したりします(Adobe Reader は印刷の時に重宝するので、嫌いではないんだけど)。そういう書類を Preview.app でデフォルト起動させるにはどうしたらいいか?Finder で“情報を見る”から開くアプリを設定?めんどくさすぎる。コマンドラインで

SetFile -c prvw FILENAME.pdf

とすると次回からダブルクリックで Preview.app (Creator: prvw )を開くようになります。既存のファイルの情報は

GetFileInfo FILENAME.EXT

で調べられます。ただ今いくつかやってみたら、結構 Filetype / Creator ともに空欄なファイル多いですね。そういうときはデフォルトのアプリが開くようになってるのかな。

ちなみに SetFile / GetFileInfo ともに XCode をインストールすると一緒にインストールされる、 /Developer/Tools 下にあります。Path は通ってないのでフルパス記述か Path を通しましょう。

Say と At

同じ MacWiki::OSXの固有コマンド から見つけたのですが、say というコマンドがあるんですね。

say "Hello world"

などと Terminal で打つと、合成音声で話しかけてくれます。面白いのでいたずらしよう、という時に思い出したのが、At コマンド。Cron の一回キリ版、という感じでしょうか。

で、いろいろ試しても At コマンド動かないのね。例えば

at now
say "Hi"
(Ctrl-D)

とかすると atq で見られるジョブがたまる一方で、何にも吐き出さない。これは実は電源管理の観点から、Apple が意図的に止めていた、らしいのです(man at を参照)。同じくマニュアルに書いてありますが、どうしても使いたい人は、lauchctl コマンドで、起動時から /usr/libexec/atrun を起動してください、と書いてあります。

でも launchctl なんて知らないし、ちょっと…という人にお勧めなのが Lingon フリーでオープンの launchd 設定用の GUI、だそうです。

Lingon を使って、SystemDaemon の com.apple.atrun.plist を起動するようにする。そうしてようやく say を管理できるようになりました。…(この項続く)

Comment:0

Comment Form

Remember Me?


Trackback:0

TrackBack URL for this entry
http://blogs.grf-design.com/mt/mt-tb.cgi/216
Listed below are links to weblogs that reference
Mac OS X 特有の Command Line App と At from The Croton

Return to Page Top