特定のアプリケーションの `.desktop`ファイルの場所を見つける方法

Jul 24 2019

編集:この質問は他の質問が尋ねているものの逆であるため、これは重複ではありません。ここでは、アプリケーションとは何かを知っており、.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

しかし、私はまだそれを見つけることができませんでした。デスクトップファイルが保存されている他の場所はありますか?

回答

5 WinEunuuchs2Unix Jul 24 2019 at 23:22

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
3 vanadium Jul 25 2019 at 00:04

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、ルート権限なしでルートドライブを検索するときに必然的に発生する権限エラーを抑制します。

RoguSmith Nov 06 2020 at 13:37

私の解決策は非常に簡単です。アプリにアイコンが付いたアプリケーションを探している場合は、次のようにします。

ls -la /usr/share/applications | grep <name_of_app_you_are_looking_for>

たとえば、Ubuntuでいくつかのアプリの場所を見つけたい--- GoogleChromeのデスクトップファイルを見つけたい

ただし、内部のアプリでのみ機能します /usr/share/applications