.Desktop dosyalarındaki boşluklardan kaçma Exec satırı


15

Burada anlatıldığı.desktop gibi bir dosya yapmak istiyorum .

[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

Ancak, Nautilus'un bağlam menüsünden bunu kullanarak Aç'ı bana

'/ Home / user / opt / sublime / Sublime' bulunamadı

Ben de denedim

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

ve var

"" İçin eşleşen alıntı bulunmadan önce metin sona erdi. (Metin '"/ home / user / opt / sublime / Sublime' idi)

Dosya Execsatırındaki boşluklardan kaçmanın doğru yolu nedir .desktop?

Yanıtlar:


5

Her boşluktan önce ters eğik çizgi koyun:

[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

4
Bu işe yaramaz:Text ended just after a '\' character. (The text was '/home/user/opt/sublime/Sublime\')
nh2

Komik, benim için çalışıyor.
Ocak

Aynı sürümleri mi kullanıyoruz? GNOME nautilus 3.4.212.04.
nh2

Bu arada Ubuntu 16.04'te benim için çalışıyor, bu arada çift tırnak. Bununla birlikte, boşluklardan ÇIKMAYIN veya Yol ve Simge değerlerini alıntılamayın, uygulamanın çalışmamasına neden olabilir (bilgisayarımda tire simgesi yanıp söner, ancak hiçbir şey yapmaz, Terminal = true olsa bile terminali açmaz). Bu sorun Exec'den kaçmazsanız, bu nedenle .desktop'un her satırında ne yapacağımı bulmamın biraz zaman aldığını hayal edebilirsiniz!
hsandt

Tuhaf ... Başlatıcıyı manuel olarak çalıştırırsam çalışır, ancak otomatik olarak başlatılmaz. Bu özellik süper hata.
Adrian Lopez

3

Ben de aynı problemi yaşıyordum! Çeşitli kaçış / alıntı desenlerini denedikten sonra, en basit çözümün sublime_text$ PATH (veya bir komut satırı takma adı kullanabilirsiniz) için sembolik bir bağlantıya sahip olduğuna karar verdim .

[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

4
Bu mantıklı bir çözüm, ancak yine de dosyalarda boşluk kullanmayı nasıl amaçladığımızı bilmiyoruz .desktop.
nh2

2
Anlaşıldı, her ne kadar bana Execyanlış uyguladığımızdan ziyade , şekilde bir şekilde buggy ayrıştırılmış gibi görünüyor . Bir boşluğu, değerin sonu olarak değerlendirir, bu gariptir, çünkü diğer özelliklerde yollar için çıkışsız boşluklar / tırnaksız dizeler kullanabilirsiniz!
c24w

3

"" Tırnak işaretleri yerine "" tırnak işaretleri kullanmayı denediniz mi? Exec satırında boşlukları olan özelleştirilmiş bir .desktop dosyam var ve benimki '' tırnak işaretleri ile çalışıyor.


3

Kurulum talimatlarını takip ederken aynı sorunu yaşıyorum ( Http://monkeyhacks.com/post/how-to-install-sublime-text-2-on-ubuntu-14-04 ) sitesinden .. Yani benim çözümüm :

  1. "Sublime" adlı yazılım bağlantısını kaldırma / silme /usr/bin

  2. "SublimeText2" olarak yeniden adlandırarak "Sublime Text 2" klasörünün tüm boşluklarını kaldırın

  3. Yeniden şurada yumuşak bir bağlantı oluşturun /usr/bin/:

    sudo ln -s /opt/SublimeText2/sublime_text /usr/bin/sublime
    
  4. Aşağıdakileri içeren .desktop dosyasını oluşturun:

    Exec=/opt/SublimeText2/sublime_text %U
    Icon=/opt/SublimeText2/Icon/48x48/sublime_text.png
    


0

Ubuntu 12.04'te GNOME nautilus 3.4.2 kullanarak da aynı problemle karşılaştım. Moblin UI Framework'te aynı sorun için bir hata raporunda bu alternatif çözümü, her klasörü $ PATH'a eklemeniz gereken yere tercih ettim.

Geçici çözüm:
"Boşluğu olmayan bir yolda sembolik bir bağlantı oluşturun ve EXEC alanını bu bağlantıya yönlendirin."


-1

.desktop dosyaları tırnak, boşluk ve kaçan karakterleri kabukların yaptığı gibi işlemez. Muhtemelen en iyi seçenek, beklenen davranışı elde etmek için exec satırınızda bir kabuk çağırmak olacaktır, örneğin:

[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

Daha fazla bilgi için lütfen bakınız man sh. Bu, diğer cevaplarda olduğu gibi sembolik bağlantılar oluşturmak ve sürdürmek zorunda kalmaz.


Bu çözüm, sonuç olarak çağrılan komuta argümanları, örneğin dosya yollarını iletmez. -1
David Foerster

Huh. Görünüşe göre bu da güvenilir değil. Bu çözümü göndermeden önce test ettim ve işe yaradı. Ama sonra doğru olup olmadığını kontrol etmek için testimi değiştirdim ve şimdi nasıl çalıştığını geri yükledikten sonra bile çalışmıyor. Tuhaf.
KDØBPV
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.