Как избежать пробелов в файлах .desktop Exec line

11

Я хочу сделать файл .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

Однако запуск из контекстного меню Nautilus с помощью Open with дает мне

Не удалось найти «/ home / user / opt / sublime / Sublime»

Итак, я попробовал

Exec="/home/user/opt/sublime/Sublime Text 2/sublime_text" %U

и получил

Текст закончился до того, как была найдена соответствующая цитата для. (Текст был «/ home / user / opt / sublime / Sublime»)

Каков правильный способ избежать пробелов в строке Exec .desktop файлов?

    
задан nh2 17.09.2012 в 18:03
источник

6 ответов

4

Перенесите каждое пространство с помощью обратного слэша:

[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
    
ответ дан January 17.09.2012 в 18:14
2

У меня была такая же проблема! Попробовав различные шаблоны экранирования / кавычек, я решил, что самым простым решением было иметь символическую ссылку на sublime_text на моей $ PATH (или вы могли бы использовать псевдоним из командной строки).

[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
    
ответ дан c24w 23.01.2013 в 12:44
2

Пробовали ли вы использовать кавычки вместо котировок? У меня есть настроенный файл .desktop с пробелами в строке Exec, а мой работает с '' кавычками.

    
ответ дан Henry Gibson 09.04.2013 в 18:41
0

Я столкнулся с той же проблемой, используя GNOME nautilus 3.4.2 в Ubuntu 12.04. Я нашел это альтернативное решение в отчете об ошибке для той же проблемы в Moblin UI Framework , который я предпочитайте тот, который указан, где вам нужно добавить каждую папку в $ PATH.

Обходной путь просто:
«Создайте символическую ссылку в пути, который не имеет пробелов, и укажите поле EXEC в эту ссылку».

    
ответ дан Björn 09.04.2013 в 18:08
-1
Файлы

.desktop не обрабатывают кавычки, пробелы и экранированные символы так же, как это делают оболочки. Вероятно, лучшим вариантом было бы вызвать оболочку в вашей строке exec, чтобы получить ожидаемое поведение, например:

[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 . Это также позволяет избежать необходимости создавать и поддерживать символические ссылки, как вы будете с другими ответами.

    
ответ дан KDØBPV 03.03.2018 в 23:00