How to find `.desktop` file location for a particular application
A much faster and more universal search is with locate
command:
$ 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
can search millions of files in a few seconds where it would take find
many many minutes:
$ 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
Notice how grep
was eliminated from original method and find
command was ammended.
The disadvantage of locate
is the database is updated daily. If you just installed the application you are searching for today, you will first need to run:
sudo updatedb
The name of the desktop
file alone may not reveal sufficient information. The fundamental approach is to search the content of all .desktop
files of the system to find the relevant one(s).
For example, the image viewer is displayed as Image Viewer
in the Applications overview. Gnome Shell obtained that label from the .desktop
file. To find the .desktop
file (or files) that contains this string, execute
find / -name '*.desktop' -exec grep -H 'Image Viewer' {} \; 2>/dev/null
This uses find
to find all .desktop
files on the system. For each of the found files, grep
is invoked, which searches for a string in the file, in this example Image Viewer
. The 2>/dev/null
suppresses the permission errors you inevitably get searching the root drive without root permissions.