Preceda cada espaço por uma barra invertida:
[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
Eu quero criar um arquivo .desktop
como descrito aqui .
[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
No entanto, executá-lo no menu de contexto do Nautilus usando Abrir com isso me dá
Não foi possível encontrar '/ home / user / opt / sublime / Sublime'
Então eu tentei
Exec="/home/user/opt/sublime/Sublime Text 2/sublime_text" %U
e obtivemos
O texto foi encerrado antes da correspondência da cotação ". (O texto era '" / home / user / opt / sublime / Sublime')
Qual é a maneira correta de escapar de espaços na linha Exec
de .desktop
files?
Preceda cada espaço por uma barra invertida:
[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
Eu estava tendo exatamente o mesmo problema! Depois de tentar vários padrões de escape / citação, decidi que a solução mais simples era ter um link simbólico para sublime_text
em meu $ PATH (ou você poderia usar um alias de linha de comando).
[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
Você já tentou usar '' quotes em vez de "" quotes? Eu tenho um arquivo .desktop personalizado com espaços na linha Exec, e o meu trabalha com aspas.
Eu tenho o mesmo problema ao seguir as instruções de instalação de ( link ) site .. Então minha solução foi:
Remova / exclua o link virtual chamado "sublime" de /usr/bin
Remova todos os espaços em branco da pasta "Sublime Text 2" renomeando-a para "SublimeText2"
Re Crie um link temporário em
/usr/bin/
:
sudo ln -s /opt/SublimeText2/sublime_text /usr/bin/sublime
Faça o arquivo .desktop incluindo:
Exec=/opt/SublimeText2/sublime_text %U
Icon=/opt/SublimeText2/Icon/48x48/sublime_text.png
De acordo com a especificação de entrada da área de trabalho , o espaço ASCII pode ser representado pela sequência de escape \s
(para valores string
e localestring
).
Eu tive o mesmo problema usando o GNOME nautilus 3.4.2 no Ubuntu 12.04. Eu encontrei esta alternativa alternativa em um relatório de bug para o mesmo problema no Moblin UI Framework que eu prefira aquele mencionado onde você precisa adicionar cada pasta ao $ PATH.
A solução alternativa é simplesmente:
"Crie um link simbólico em um caminho que não tenha espaços e aponte o campo EXEC para esse link."
Os arquivos .desktop não manipulam aspas, espaços e caracteres de escape da mesma maneira que os shells. Provavelmente, a melhor opção seria chamar um shell em sua linha exec para obter o comportamento esperado, assim:
[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
Para mais informações, consulte man sh
. Isso também evita ter que criar e manter links simbólicos, assim como as outras respostas.