Как я могу использовать терминальные команды для доступа к пунктам меню Ubuntu?

Я должен запустить скрипт удара, который получит все файлы на рабочем столе, расположенные в определенном пункте меню (как аксессуары/утилиты или образование, и т.д.) и затем выполнять определенного из них. Какие терминальные команды я могу использовать, чтобы сделать это?

1
задан 8 February 2019 в 16:01

1 ответ

.desktop файлы расположены под также /usr/share/applications/ (в масштабе всей системы) или ~/.local/share/applications (на пользователя). Классификация сделана путем установки свойства “Categories” в файле, и это не может быть тем же самым как показано в меню, таким образом, сначала необходимо узнать корректное название категории. В моем меню существует категория под названием “Büro”, который является немецким термином для “Office”, и это содержит средство запуска для qpdfview. Рассмотреть .desktop строка “Категорий” файла я работаю:

$ grep Categories /usr/share/applications/qpdfview.desktop 
Categories=Viewer;Office;

Это показывает эти две категории для программы, таким образом, в нее звонят “офис” в .desktop файлы. Получить список каждого .desktop файл категоризировал с “Office”, который я использую grep снова, с -l отметьте, чтобы только показать имена файлов без соответствий:

$ grep -l Categories.*Office /usr/share/applications/*
/usr/share/applications/evince.desktop
/usr/share/applications/evince-previewer.desktop
/usr/share/applications/gnucash.desktop
/usr/share/applications/libreoffice-base.desktop
/usr/share/applications/libreoffice-calc.desktop
/usr/share/applications/libreoffice-draw.desktop
/usr/share/applications/libreoffice-impress.desktop
/usr/share/applications/libreoffice-math.desktop
/usr/share/applications/libreoffice-startcenter.desktop
/usr/share/applications/libreoffice-writer.desktop
/usr/share/applications/qpdfview.desktop

Таким образом, это - наш список офисных программ, теперь для выполнения их я просто использовал бы xdg-open, например:

xdg-open /usr/share/applications/qpdfview.desktop

Если xdg-open не работает над Вашей системой, можно также просто извлечь команду запуска из файла и выполнить ее непосредственно, например:

exec $(grep -Po 'Exec=\K[^ ]*' /usr/share/applications/qpdfview.desktop)

Вы не предоставили информацию о том, как Вы или пользователь сценария должны выбрать программу для выполнения, таким образом, вот некоторые ссылки, которые могут помочь Вам с этим:

Сохранение имен файлов в массиве для легкой обработки в сценарии так легко:

options=("$(grep -l Categories.*Office /usr/share/applications/*)")
0
ответ дан 7 December 2019 в 21:25

Другие вопросы по тегам:

Похожие вопросы: