特定のアプリケーションの `.desktop`ファイルの場所を見つける方法
編集:この質問は他の質問が尋ねているものの逆であるため、これは重複ではありません。ここでは、アプリケーションとは何かを知っており、.desktop
非標準の場所にも配置できるファイルを見つけたいと考えています。もう1つの質問は、.desktop
ファイルをどこに配置できるかについてです。
FTPサーバーからの画像をブラウザではなくデフォルトの画像ビューアで開きたいので、Ubuntuのデフォルトの画像ビューアデスクトップファイルのパスを知りたいと思いました。私は以下を試しました:
cd -- /usr/share/applications
/usr/share/applications
$ find . -name '*.desktop' | grep image ./gnome-disk-image-mounter.desktop ./gnome-disk-image-writer.desktop $ find . -name '*.desktop' | grep view
./calibre-ebook-viewer.desktop
./calibre-lrfviewer.desktop
./evince-previewer.desktop
./shotwell-viewer.desktop
./okularApplication_ghostview.desktop
./gcr-viewer.desktop
./gnome-info-overview-panel.desktop
./org.gnome.font-viewer.desktop
./paraview.desktop
しかし、私はまだそれを見つけることができませんでした。デスクトップファイルが保存されている他の場所はありますか?
回答
locate
コマンドを使用すると、はるかに高速で普遍的な検索が可能になります。
$ locate *image*desktop
/usr/share/app-install/desktop/gimagereader:gimagereader-gtk.desktop
/usr/share/app-install/desktop/gnome-disk-utility:gnome-disk-image-mounter.desktop
/usr/share/app-install/desktop/gnome-disk-utility:gnome-disk-image-writer.desktop
/usr/share/app-install/desktop/imagej:imagej.desktop
/usr/share/app-install/desktop/imagemagick-6.q16:display-im6.q16.desktop
/usr/share/app-install/desktop/imagemagick:display-im6.desktop
/usr/share/app-install/desktop/imagevis3d:imagevis3d.desktop
/usr/share/app-install/desktop/kimagemapeditor:kde4__kimagemapeditor.desktop
/usr/share/app-install/desktop/simple-image-reducer:simple-image-reducer.desktop
/usr/share/app-install/desktop/trimage:trimage.desktop
/usr/share/applications/gnome-disk-image-mounter.desktop
/usr/share/applications/gnome-disk-image-writer.desktop
/usr/share/applications/screensavers/tessellimage.desktop
locate
数分で数百万のファイルを検索できますfind
。
$ time find / -name '*image*.desktop'
real 0m52.563s
user 0m6.271s
sys 0m9.002s
$ time locate *image*desktop
real 0m0.705s
user 0m0.693s
sys 0m0.012s
grep
元のメソッドからどのように削除され、find
コマンドが修正されたかに注意してください。
の欠点locate
は、データベースが毎日更新されることです。今日探しているアプリケーションをインストールしたばかりの場合は、最初に以下を実行する必要があります。
sudo updatedb
desktop
ファイルの名前だけでは、十分な情報が得られない場合があります。基本的なアプローチは.desktop
、システムのすべてのファイルのコンテンツを検索して、関連するファイルを見つけることです。
たとえば、画像ビューアはImage Viewer
アプリケーションの概要のように表示されます。Gnome Shellは、.desktop
ファイルからそのラベルを取得しました。.desktop
この文字列を含む1つまたは複数のファイルを見つけるには、次を実行します。
find / -name '*.desktop' -exec grep -H 'Image Viewer' {} \; 2>/dev/null
これは、システム上のfind
すべての.desktop
ファイルを検索するために使用します。見つかったファイルごとに、grep
が呼び出され、この例ではファイル内の文字列が検索されますImage Viewer
。は2>/dev/null
、ルート権限なしでルートドライブを検索するときに必然的に発生する権限エラーを抑制します。
私の解決策は非常に簡単です。アプリにアイコンが付いたアプリケーションを探している場合は、次のようにします。
ls -la /usr/share/applications | grep <name_of_app_you_are_looking_for>
たとえば、Ubuntuでいくつかのアプリの場所を見つけたい--- GoogleChromeのデスクトップファイルを見つけたい
ただし、内部のアプリでのみ機能します /usr/share/applications