РЕДАКТИРОВАТЬ: Это не дубликат, так как этот вопрос противоположен тому, что задает другой вопрос. Здесь мы знаем, что такое приложение, и мы хотим найти его файл .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
Но я все еще не мог найти это. Есть ли другие места, где хранятся файлы рабочего стола?
Намного более быстрый и более универсальный поиск с 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
файлы системы для нахождения соответствующей (s).
Например, программа просмотра изображений отображена как 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
подавляет ошибки разрешения, Вы неизбежно получаете поиск корневого диска без корневых полномочий.
Ну, мое решение очень простое, и вот как это сделать, если вы ищете приложение со значком в своих приложениях
ls -la /usr/share/applications | grep <name_of_app_you_are_looking_for>
Например, я хочу найти местоположение для некоторых приложений в мой Ubuntu --- я хочу найти файл рабочего стола для Google Chrome
Но это работает только для приложений внутри /usr/share/applications