2012年9月15日土曜日

Finderの「このアプリケーションで開く」その3

一応、表題の問題は解決はしたのですが、前回からの続きです。
The Unarchiver以外にも、複数回登録されているアプリケーションがないか、確認してみました。
前回と同じく、lsregisterのあるディレクトリに移動します。

$ cd `dirname \`locate lsregister\``

次のコマンドをターミナルから入れて確認します。

$ ./lsregister -dump | grep "path: .*\.app" | sort | uniq -d


各コマンドの説明をします。
lsregisterの -dump オプションで、Lauch Servicesが使っているデータベースを出力して次のgrepコマンドに渡します。
grepコマンドは、渡された文字列から条件に合う行を探して表示します。ここでは、渡された各行に、path:で始まり.appで終わるパターンがあるかどうかを探しています。path: 〜 .appは行の途中に出てきていてもかまいません。次に、sortコマンドに見つかった結果を渡します。
sortコマンドは、入力された行を順番に(今回の場合アルファベット順)に並び替えて表示します。その結果をuniqコマンドに渡します。
uniqコマンドは、入力から重複している行を探してくれます。uniqコマンドは隣同士の行(1行前の行と現在の行)しか比較しませんので、uniqにgrepの結果を渡す前にsortコマンドで順番に並び替えています。同じ行があれば隣同士になります。uniqコマンドの-dオプションは、重複している行だけを表示します。

結果は次のようになりました。

path:      /Volumes/Disk2/Applications/Flaex.app
path:      /Volumes/Disk2/Applications/GrowlTunes.app
path:      /Volumes/Disk2/Applications/Inkscape.app
path:      /Volumes/Disk2/Applications/OnyX.app
path:      /Volumes/Disk2/Applications/OpenOffice.org.app
path:      /Volumes/Disk2/Applications/Rember.app

同じパスで重複登録されているアプリケーションが6個ありました。あまり使っていないものばかりだったので、今回はそのままにすることにしました。
ところで、今のままですと、例えば起動ディスクと外付けディスクに同じアプリケーションがある場合見つかりません。これは、時間があればスクリプトでも作ってみようかと思います。

0 件のコメント:

コメントを投稿