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 件のコメント:
コメントを投稿