如何在.desktop文件中删除空格Exec行
我想制作一个像这里描述的.desktop
文件。
[Desktop Entry] Name=Sublime Text 2 GenericName=Sublime Text 2 Comment=Edit text files Exec=/home/user/opt/sublime/Sublime Text 2/sublime_text %U
但是,使用Open with this从Nautilus的上下文菜单运行它给了我
找不到’/ home / user / opt / sublime / Sublime’
所以我试过了
Exec="/home/user/opt/sublime/Sublime Text 2/sublime_text" %U
得到了
文本在找到匹配的引号之前结束“。(文本是’”/ home / user / opt / sublime / Sublime’)
在.desktop
文件的Exec
行中转义空格的正确方法是什么?
用反斜杠在每个空格前面:
[Desktop Entry] Name=Sublime Text 2 GenericName=Sublime Text 2 Comment=Edit text files Exec=/home/user/opt/sublime/Sublime\ Text\ 2/sublime_text %U
我有完全相同的问题! 在尝试了各种转义/引用模式之后,我认为最简单的解决方案是在$ PATH上有一个指向sublime_text
的符号链接(或者你可以使用命令行别名)。
[Desktop Entry] Version=1.0 Type=Application Terminal=false Icon[C]=/usr/share/Sublime Text 2/Icon/256x256/sublime_text.png Name[C]=Sublime Text 2 Exec=Sublime-Text-2 %U Comment[C]=Text Editor Name=Sublime Text 2 Comment=Text Editor Icon=/usr/share/Sublime Text 2/Icon/256x256/sublime_text.png X-Desktop-File-Install-Version=0.21
您是否尝试使用”引号而不是“”引号? 我有一个定制的.desktop文件,在Exec行中有空格,我的工作用”引号。
根据桌面条目规范, ASCII空间可以用\s
转义序列表示(对于string
和localestring
值)。
我在Ubuntu 12.04中使用GNOME nautilus 3.4.2遇到了同样的问题。 我在Moblin UI Framework中针对同一问题的错误报告中找到了这种替代解决方法,我更喜欢提到你需要将每个文件夹添加到$ PATH的那个。
解决方法很简单:
“在没有空格的路径中创建符号链接,并将EXEC字段指向该链接。”
.desktop文件不像shell那样处理引号,空格和转义字符。 可能最好的选择是在你的exec行中调用一个shell来获得预期的行为,如下所示:
[Desktop Entry] Name=Sublime Text 2 GenericName=Sublime Text 2 Comment=Edit text files Exec=sh -c "/home/user/opt/sublime/Sublime Text 2/sublime_text" %U
有关更多信息,请参阅man sh
。 这也避免了必须创建和维护符号链接,就像您将使用其他答案一样。