调用命令时“%U”是什么意思?

Tim*_*Tim 78 command-line

当编辑应用程序菜单,我看到一些应用程序的命令具有%Ugedit %Ugnome-mplayer %U,但别人不一样,例如gcalctool

我想知道什么%U时候调用命令,什么时候需要,什么时候不需要?谢谢!

这是从我之前的问题中得到的,在那里我遵循了一个回复但没有使它起作用。

hto*_*que 80

它是.desktop文件(在Desktop Entry Specification 中定义)中Exec键的参数,它描述了如何处理程序的参数(来自文件管理器/程序启动器,例如多个选定的文件):

%u 单个网址。本地文件可以作为 file: URL 或作为文件路径传递。

%U URL 列表。每个 URL 作为单独的参数传递给可执行程序。本地文件可以作为 file: URL 或作为文件路径传递。

因此,例如,/usr/share/applications/gedit.desktop包含:

执行=gedit %U

这意味着 gedit 的参数将被视为 URL(或本地文件)列表。

有关可能参数的完整列表,请参阅Exec 键

  • 这些参数键存在的原因是,如果您同时打开多个选定对象或将一个或多个对象放在上面,桌面管理器知道该怎么做。`%U` 表示程序可以在一次调用中获取所有这些;`%u` 表示每个对象都需要单独调用;如果没有指定它们,那么程序不知道如何处理掉在上面的东西。还有其他键允许桌面管理器将自定义信息传递给程序,以及一组单独的选择器 `%f`、`%F`,这意味着它需要一个/多个文件而不是 URL。 (43认同)
  • 谢谢!(1) 能举几个例子吗?(2) 什么时候这些都不会被指定? (2认同)
  • @geekosaur:很棒的评论! (2认同)