Quiero hacer un .desktoparchivo como se describe aquí .
[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
Sin embargo, ejecutar eso desde el menú contextual de Nautilus usando Abrir con esto me da
No se pudo encontrar '/ home / user / opt / sublime / Sublime'
Así que lo intenté
Exec="/home/user/opt/sublime/Sublime Text 2/sublime_text" %U
y consiguió
El texto finalizó antes de encontrar una cita coincidente para ". (El texto era '" / home / user / opt / sublime / Sublime')
¿Cuál es la forma correcta de escapar espacios en la Execlínea de .desktoparchivos?

Text ended just after a '\' character. (The text was '/home/user/opt/sublime/Sublime\')GNOME nautilus 3.4.2el 12.04.¡Estaba teniendo exactamente el mismo problema! Después de probar varios patrones de escape / cita, decidí que la solución más simple era tener un enlace simbólico
sublime_texten mi $ PATH (o podría usar un alias de línea de comandos).fuente
.desktoplos archivos.Execse analiza, en lugar de que nosotros lo implementemos incorrectamente. ¡Interpreta un espacio como el final del valor, lo cual es extraño, ya que puede usar espacios sin escape / cadenas sin comillas para las rutas en las otras propiedades!¿Has intentado usar comillas '' en lugar de comillas ""? Tengo un archivo .desktop personalizado con espacios en la línea Exec, y el mío funciona con '' comillas.
fuente
Tengo el mismo problema cuando sigo las instrucciones de instalación del sitio ( http://monkeyhacks.com/post/how-to-install-sublime-text-2-on-ubuntu-14-04 ). Así que mi solución fue :
Eliminar / eliminar el enlace suave llamado "sublime" de
/usr/binElimine todos los espacios en blanco de la carpeta "Sublime Text 2" renombrándolo a "SublimeText2"
Re Crear un enlace suave en
/usr/bin/:Cree el archivo .desktop que incluya:
fuente
De acuerdo con la especificación de entrada de escritorio, el espacio ASCII puede estar representado por la
\ssecuencia de escape (parastringylocalestringvalores).fuente
Me encontré con el mismo problema usando GNOME nautilus 3.4.2 en Ubuntu 12.04. Encontré esta solución alternativa en un informe de error para el mismo problema en Moblin UI Framework, que prefiero al mencionado donde necesita agregar cada carpeta a $ PATH.
La solución alternativa es simplemente:
"Cree un enlace simbólico en una ruta que no tenga espacios y apunte el campo EXEC a ese enlace".
fuente
Los archivos .desktop no manejan comillas, espacios y caracteres escapados de la misma manera que los shells. Probablemente, la mejor opción sería llamar a un shell en su línea ejecutiva para obtener el comportamiento esperado, así:
Para más información, consulte
man sh. Esto también evita tener que crear y mantener enlaces simbólicos, como lo hará con las otras respuestas.fuente