Что означает «% U» при вызове команды?


54

При редактировании меню «Приложения» я вижу, что для некоторых приложений их команды имеют %Uтакие, как gedit %Uи gnome-mplayer %U, а другие - нет gcalctool.

Мне было интересно, что %Uзначит при вызове команды, а когда это нужно, а когда нет? Спасибо!

Это мотивировано из моего предыдущего вопроса , где я следовал за ответом, но не заставил его работать.

Ответы:


58

Это параметр для ключа Exec в файлах .desktop (определенный в спецификации записи рабочего стола ), который описывает, как должны обрабатываться аргументы программы (из файлового менеджера / средства запуска программы, например, нескольких выбранных файлов):

%u Один URL. Локальные файлы могут передаваться как file: URL или как путь к файлу.

%U Список URL. Каждый URL передается в качестве отдельного аргумента исполняемой программе. Локальные файлы могут передаваться как file: URL или как путь к файлу.

Так, например, /usr/share/applications/gedit.desktopсодержит:

Exec = gedit% U

Это означает, что аргументы gedit будут обрабатываться как список URL-адресов (или локальных файлов).

Полный список возможных параметров см. В разделе Ключ Exec .


2
Спасибо! (1) Не могли бы вы привести несколько примеров? (2) Когда не будет указано ничего из этого?
Тим

32
Причина, по которой эти ключи параметров существуют, заключается в том, что менеджер рабочего стола знает, что делать, если вы одновременно открываете несколько выбранных объектов или удаляете один или несколько объектов на нем. %Uозначает, что программа может принять их всех за один вызов; %uозначает, что для каждого объекта требуется отдельный вызов; если ни один из них не указан, то программа не знает, что делать с выпавшими на ней вещами. Есть другие ключи , которые позволяют менеджеру рабочего стола , чтобы передать информацию настройки в программу, а также отдельный набор селекторов %f, %F, то есть он принимает один / несколько файлов , но не URL.
geekosaur

1
@geekosaur: Отличный комментарий!
Тим
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.