web-dev-qa-db-ja.com

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

編集:これは、この質問が他の質問の質問の逆であるため、重複ではありません。ここでは、アプリケーションが何であるかを知っており、その.desktopファイルは、標準以外の場所にも配置できます。他の質問は.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

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

3
Nikhil

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
2

desktopファイルの名前だけでは、十分な情報が明らかにならない場合があります。基本的なアプローチは、システムのすべての.desktopファイルのコンテンツを検索して、関連するファイルを見つけることです。

たとえば、イメージビューアーは、アプリケーションの概要ではImage Viewerとして表示されます。 Gnome Shellは.desktopファイルからそのラベルを取得しました。この文字列を含む.desktopファイルを検索するには、次を実行します

find / -name '*.desktop' -exec grep -H 'Image Viewer' {} \; 2>/dev/null

これはfindを使用して、システム上のすべての.desktopファイルを検索します。見つかったファイルごとにgrepが呼び出され、ファイル内の文字列が検索されます(この例ではImage Viewer)。 2>/dev/nullは、ルート権限なしでルートドライブの検索で必然的に発生する権限エラーを抑制します。

2
vanadium