日記帳

日記です。

Mac OS X で open コマンドを使ってファイルを開く

最近少しだけ PowerBook を使う機会があったのですが Mac OS X にはシェル上で引数として渡したファイルを開く open というコマンドがあって便利に使っていました.

% open hoge.txt  # テキストエディタで hoge.txt を開く
% open fuga.png  # 画像ビューワで fuga.png を開く
% open .         # ファインダーでカレントディレクトリを開く
% open http://www.google.com/  # Safari でGoogleを開く
% open mailto:<メールアドレス> # Mail で<メールアドレス>宛のメールを作成

ファイルの拡張子やURIスキームに応じて登録してあるアプリケーションで開いてくれるので CUI なシェル上で作業していて GUI はアプリケーションを起動したいときにはとても便利です.

アプリケーションの起動もできます.

% open /Applications/iCal.app

というかシェルからアプリケーションを起動するまともな方法が open コマンド以外にあるのかしら? まぁ *.app 以下から環境にあった実行ファイルを探して実行してもいいのですけど…

Linux の GNOME 環境でコマンド使ってファイルを開く

で普段は Linux 上で GNOME 環境なので GNOME でもやりたいよね,とか思って深く考えずにコマンドラインで以下のように入力して実行してみました.

% gnome-open test.txt

ちゃんとテキストエディタ(gedit)が起動して test.txt を開いてくれましたとさ…

まぁちょっと考えれば mime-type や拡張子とアプリケーションとの関連付けデータベースを持ってるような環境であればこの手の動作をするコマンドを実装すのは当然という気もしますね.

ディレクトリやURIも同様に開くことができました.

% gnome-open fuga.png  # Eye of GNOME で fuga.png が開く
% gnome-open .         # Nautilus でカレントディレクトリが開く
% gnome-open http://www.google.com/  # ブラウザで Google が開く
% gnome-open mailto:<メールアドレス> # MUAで<メールアドレス>宛のメールを作成

シェルから入力するには gnome-open は少し長すぎるので ~/.bashrc でエイリアスを設定して使うことにしました.

alias open="gnome-open"

Linux の KDE 環境でコマンド使ってファイルを開く

Mac OS XGNOME にできて KDE にできない理由はないですよね.ということでちょっと調べてみると kfmclient コマンドでできるらしい…

% kfmclient exec test.txt

上のようにするとちゃんと KWrite で test.txt が開きました.当然画像ファイルや URI(httpスキーム,mailtoスキーム) も開けます.

kfmclient には exec 以外にも以下のようなコマンドがあってなかなか多機能です. kfmclient --commands でコマンド一覧が表示されます.

  • openURL
  • openProfile
  • openProperties # 指定ファイルのプロパティを開く
  • move 'src' 'dest' # ファイルやフォルダの移動
  • copy 'src' 'dest' # ファイルやフォルダのコピー
  • download URI # 指定 URI のダウンロード
  • sortDesktop # デスクトップ上のアイコンを再配置
  • configure # konqueror の設定の再読み込み
  • configureDesktop # kdesktop の設定の再読み込み

また kfmclient exec でデバイスのマウントやアンマウントまでできるようです.

Windows の cygwin 環境でコマンド使ってファイルを開く

Mac OS XGNOMEKDE にできて Windows でできない理由はないですよねぇ…
まぁ Windowsコマンドラインを使う場合は cygwin 環境を使っているのでとりあえず cygwin で調べてみると cygstart コマンドというのがありました.

% cygstart test.txt

上のようにするとメモ帳で test.txt が開きました.

cygstart は別に長すぎるということもないのですが環境毎に名前がかわるとややこしいのでこれもエイリアスを設定してしまいました.

alias open="cygstart"

ヘルプを見ると(cygstart --help) 使えるオプションが見れます.これを見ると単純に SHELL32.DLL の ShellExecute() 関数を使って開いていそうな雰囲気ですね…

以下 cygstart --help の一部を引用です.

続きを読む

Windows の「ファイル名を指定して実行」使ってファイルを開く

Windowsキー + R で開けるあれです.

普通は実行ファイルを指定して実行しますが実はファイルパスやURIを入力すればそれに関連付けされたアプリケーションで開きます.

しかしファイル名を入力しようにも補完が効かない*1とか編集用の領域が短かすぎるとか諸々の理由で実用的に使うのは難しそうですね…

*1:最近開いたファイルの履歴から入力にマッチするものを候補として表示してくれる機能はある