Dosya dernekleri nerede saklanır?


67

Ubuntu veya diğer Linux sistemleri dosya ilişkilerini nasıl saklar?

Bazı var mı /etc/asscociationsdosya falan?

Dosyaya sağ tıklayıp "aç" ile değiştirebileceğimi biliyorum, ancak dahili olarak nasıl saklandığını merak ediyorum.

Yanıtlar:


67

Dosya yöneticisi (Nautilus, varsayılan olarak) hangi programın açılacağını belirlemek için MIME türünü kullanır . Bir uygulama yüklendiğinde, hangi MIME türlerini açabileceğini ve içinde yer alan .desktop dosyasındaki dosyaları açmak için kullanılacak komutu belirtebilir /usr/share/applications. Bu, menüler, masaüstü kısayolları vb. İçin kullanılan dosyadır.

Örneğin, GIMP aşağıdaki .desktop dosyasına sahiptir:

[Desktop Entry]
Version=1.0
Type=Application
Name=GNU Image Manipulation Program
GenericName=Image Editor
Comment=Create images and edit photographs
Exec=gimp-2.7 %U
TryExec=gimp-2.7
Icon=gimp
Terminal=false
Categories=Graphics;2DGraphics;RasterGraphics;GTK;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=GIMP
X-GNOME-Bugzilla-Component=General
X-GNOME-Bugzilla-Version=2.7.2
X-GNOME-Bugzilla-OtherBinaries=gimp-2.7
StartupNotify=true
MimeType=application/postscript;application/pdf;image/bmp;image/g3fax;image/gif;image/x-fits;image/pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/tiff;image/jpeg;image/x-psp;image/png;image/x-icon;image/x-xpixmap;image/svg+xml;application/pdf;image/x-wmf;image/jp2;image/jpeg2000;image/jpx;image/x-xcursor;

MimeTypeAlana bakın - bu desteklenen MIME türlerini listeler. ExecAlan sisteme komutu kullanmasını, gimp-2.7 %U'% U' yerine açılan dosyaları değiştirmesini söyler . (Not GIMP 2.7, bir PPA'dan yüklediğim bir sürümdür, bu nedenle Ubuntu depolarındaki geçerli sürümden daha yüksektir).

Uygulama paketi yüklendiğinde, sistem bu MIME türü verilerini daha kolay erişilebilir bir veritabanına ayıklar, çünkü her .desktop dosyasına bakmak, her dosya açıldığında çok uzun sürecektir.

Bu neyi uygulamalar sistemi anlatır olabilir o MIME türü için kullanılmış ve 'Aç ile' listesinde uygulamaları sağlar edilebilir. Varsayılan başka yerde tanımlanmıştır. Dosya /usr/share/applications/defaults.list, sistem varsayılanları için bilgi sağlar. Aksi bir seçim yapmazsanız, bunlar bir dosyayı 'Açtığınızda' kullanılan uygulamalardır.


7
/usr/share/applications .desktopDosyalardaki MIME türlerini değiştirdikten sonra , yeni ilişkilendirmeleri çalışırken görmek için bu MIME veritabanını yeniden oluşturma komutu var mı?
Redsandro

12
Evet. sudo update-desktop-databaseBakınız jarrpa.net/2011/10/28/…
NoBugs

Yerel değişiklikler için daha uygun bir yer /usr/local/share/applications. Sanırım varsayılan olarak gtk da orada görünüyor. Sistemimde var, ancak Ubuntu 7.04'ten bu yana yükseltildi (yeniden yüklenmedi).
Peter Cordes

2
Ubuntu , freedesktop.org 'u takip ediyor gibi gözüküyor: standartlar.freedesktop.org/mime-apps-spec/… , harika bir proje.
Ciro Santilli en son 30:15

23

Dv3500ea'nın mükemmel cevabını desteklemek için, derneklerinizi değiştirdiğinizde ne olacağı hakkında biraz bilgi eklemek istiyorum.

Defaults.list ('locult defaults.list' yazarak bulabileceğiniz) yazarak bulabilirsiniz) her MIME türüyle ilişkilendirilmiş uygulamaların listesini sağlarken, yaptığınız tüm özelleştirmeler ana dizininizde ~ / .local / share / uygulamalar / mimeapps.list. Böylece ilişkilendirmeler ekler veya çıkarırsanız veya varsayılan ilişkilendirmeyi değiştirirseniz, bu dosya güncellenir.

Http://library.gnome.org/admin/system-admin-guide/stable/ adresindeki GNOME Masaüstü Sistem Yönetim Kılavuzu, mimeapps.list’i tartışıyor gibi görünmüyor, ancak aşağıdaki açıklamayı http: //live.gnome adresinde buldum. .org / SysAdminGuideUpdate :

mimeapps.list, $ XDG_DATA_DIRS / uygulamalarında bulunur. Amacı, mime ilişkilerini uygulamalara eklemek veya kaldırmaktır. Kullanıcı "Birlikte Aç" iletişim kutusunda değişiklik yaptığında nautilus ~ / .local / share / applications / mimeapps.list yazar.


1
Ancak Ubuntu 12.04'ü kullanarak, içindeki mimeapps.listgirişlerin geçersiz kıldığını fark ettim defaults.list.
feeela

1
~/.local/share/applications/mimeapps.list14.04'te s / vlc / mplayer / in içindeydim ve pcmanfm gibi çalışan işlemler yeniden başlatmadan değişiklikleri aldı. (mplayer.desktop sadece mplayer'ı çalıştırıyor. / usr / local içinde eski bir mplayer kurulumundan bir tane yalan söyledim sanırım. MimeType=list;İhtiyacı olup olmadığına IDK vardı.
Peter Cordes

Daha doğrusu, mimeapps.listaşağıdaki arama yolunda herhangi bir yerde olabilir: specifications.freedesktop.org/mime-apps-spec/...
Ciro Santilli新疆改造中心法轮功六四事件

18

Sistemimde (Debian Jessie) ayrıca ~/.config/mimeapps.listgedit ile belirli bir dosya türünü açmak için yanlışlıkla oluşturduğum bir ilişkimin olduğunu buldum. Bunu düzeltmenin standart yollarından hiçbiri (varsayılan uygulama ayarları, Thunar'ın özellikli açık ) bunu yansıtmıyordu, ancak gedit varsayılan uygulama oldu.

Satırı kaldırdım ~/.config/mimeapps.listve şimdi doğru uygulama dosyayı açar.


2
Teşekkürler, yanlışlıkla Firefox'un Gedit'te her şeyi açmasını düzeltmeme yardımcı oldunuz. OpenSUSE 13.2'de satırı "application / octet-stream = org.gnome.gedit.desktop;" ile kaldırdım. :)
user31389

3
ubuntu 15.04'ten beri kullanıcıya özel modifikasyonlar da saklanır ~/.config/mimeapps.list.
DJCrashdummy,

2
Daha doğrusu, mimeapps.listaşağıdaki arama yolunda herhangi bir yerde olabilir: specifications.freedesktop.org/mime-apps-spec/...
Ciro Santilli新疆改造中心法轮功六四事件

8

Varsayılan bağlantıyla ilgili bu bağlantıyı buldum, yardımcı olabilir. https://wiki.archlinux.org/index.php/Default_
Global birleşme için başvurular:

/usr/share/applications/mimeapps.list

kullanıcı derneği başına:

~/.local/share/applications/mimeapps.list

sözdizimi aşağıdaki gibidir:

[Added Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
...
[Removed Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN

[Eklenen İlişkiler] bölümü, tercih edilen azalan tercihlerde (varsayılan) uygulamaları belirtmek için kullanılır. Bu, desktopfile1'in en çok tercih edilen ve desktopfileN'nin en az tercih edilen olduğu anlamına gelir .
[Kaldırılan İlişkiler] bölümü, daha önce devralınan ilişkilendirmeleri açıkça kaldırmak için kullanılır.


1
Bu bir archlinux sitesinden geliyor, mutlaka Ubuntu için /usr/share/applications/mimeapps.listgeçerli değil , mevcut değil.
guntbert

Buna dikkat çektiğiniz için teşekkür ederiz, ancak kullanıcı Ubuntu ya da diğer Linux sistemlerinde söylediği için bu, bu sorunun da bir cevabı olduğu anlamına gelir: P.
IdontCareAboutReputationPuanlar

5
Bu cevap mükemmeldirmimeapps.desktopdefaults.desktop
szx

8

Böyle bir ilişki kurabildim:

xdg-mime default xnview.desktop image/jpeg

Ayrıca ilişkilendirmeleri kaldırabilir ve başka şeyler yapabilirsiniz: man xdg-mime

Koşmama gerek yoktu sudo update-desktop-database.


7

Bir dosya oluşturun truecrypt.desktopiçinde ~/.local/share/applicationsaşağıdaki çizgilerle:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=
Exec=/usr/bin/truecrypt %U
Name=truecrypt
Comment=manage truecrypt volumes

sonra dosyayı düzenleyin ~/.local/share/applications/mimeapps.listve aşağıdaki satırı ekleyin:

application/octet-stream=truecrypt.desktop

Bu komutu çalıştırarak Truecrypt'ın mime türünü öğrendim:

file --mime-type -b <any truecrypt filename>

Güzel cevap, çünkü kde kullanan, ancak firefox gibi birkaç gtk yerel programına sahip olanlar için çalışıyor.
naught101

5

mimeapps.list arama yolu

Diğerleri bu dosyadan bahsetti, ancak hiçbiri yerini tam olarak açıklayamadı.

Freedesktop.org standardı https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.html adresinde yazmaktadır :

Bu dosya için arama sırası aşağıdaki gibidir:

$XDG_CONFIG_HOME/$desktop-mimeapps.list user overrides, desktop-specific (for advanced users)
$XDG_CONFIG_HOME/mimeapps.list             user overrides (recommended location for user configuration GUIs)
$XDG_CONFIG_DIRS/$desktop-mimeapps.list sysadmin and ISV overrides, desktop-specific
$XDG_CONFIG_DIRS/mimeapps.list             sysadmin and ISV overrides
$XDG_DATA_HOME/applications/$desktop-mimeapps.list  for completeness, deprecated, desktop-specific
$XDG_DATA_HOME/applications/mimeapps.list             for compatibility, deprecated
$XDG_DATA_DIRS/applications/$desktop-mimeapps.list    distribution-provided defaults, desktop-specific
$XDG_DATA_DIRS/applications/mimeapps.list              distribution-provided defaults

ve sonra bu ortam değişkenleri için varsayılan değerler https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html adresinde verilmiştir :

  • $XDG_DATA_HOME: $HOME/.local/share
  • $XDG_CONFIG_HOME: $HOME/.config
  • $XDG_DATA_DIRS: none, eklenmiş XDG_DATA_HOME
  • $XDG_CONFIG_DIRS: none, eklenmiş XDG_CONFIG_HOME

Ubuntu'nun eski sürümleri kontrol edemeyebilir ~/.config, bu yüzden ~/.local/sharede denediğinizden emin olun .

Komutlar gibi:

 xdg-settings set default-web-browser chromium-browser.desktop
 xdg-settings get default-web-browser

bu dosyaları otomatik olarak düzenleyecektir.


2

Bütün kullanıcılar için:

/usr/share/applications/defaults.list

Her kullanıcı, bu varsayılanları geçersiz kılmak için bir yapılandırma dosyasına sahiptir:

~ / .Config / mimeapps.list

ayrıca varsayılanları geçersiz kılmak için kullanılabilecek yerler için https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html adresini ziyaret edin .

Dernek değiştirmek istediğiniz dosyanın mime tipini bilmelisiniz.

Ayrıca tüm ilişkilendirmeler aşağıdakileri kullanarak komut satırında değiştirilebilir:

xdg-mim


1

Freedesktop.org (daha önce X Masaüstü Grubu olarak adlandırılan, bu nedenle "XDG" kısaltması) şu anda X standartlarını yönlendiren gruptur ( Wikipedia'da daha fazla bilgi edinin ).

warvariuc'ın cevabı , xdg-mime gibi kullanımlardan zaten bahsetti :

xdg-mime default xnview.desktop image/jpeg

 

Görüntü düzenleyicileri ve izleyicileriyle çok fazla oynadıktan sonra, özellikle daha nadir görüntü türleri arasında, neredeyse hiç tutarlı olmayan farklı görüntü türleri için farklı görüntüleyicilerle bitirdim.

Yukarıdaki komutu aldım ve görüntü izleyiciler tarafından kontrol edilen MIME türlerinin her birine atadım ve image-viewer.desktopbunlardan birini klonlayarak yeni bir tane yarattım (bu isteğe bağlıdır, sadece en sevdiğiniz şeyi yeniden kullanabilirsiniz). Ardından, MIME türlerinden hiçbirinin yeni tercih edilen uygulamamla uyumlu olmadığını elle de doğruladım. Son olarak, bu uygulamayı diğer tüm uygulamaların MIME türleri için varsayılan olarak ayarlıyorum:

sed '/^MimeType=/!d; s///; s/;/\n/g' \
  /usr/share/applications/{ristretto,geeqie,gthumb}.desktop |sort -u \
  |xargs xdg-mime default image-viewer.desktop

Bu .desktop, izleyicilerin her birinin dosyalarını inceler ( benim durumumda Ristretto , Geeqie , ve GThumb ), MIME tanımını çıkarır (ön MimeType=- yüzlü ve sonra noktalı virgülle ayrılmış bir liste içerir), (daha önce eşleşen) ön etiketini kaldırır ve Listeyi satır başına bir girişe böler. sort -usonra gereksiz satırları kaldırır, ardından xdg-mimeyeni varsayılanları ayarlamak için verilir.

(Canlı çalıştırmadan önce bu test etmek isterseniz, değiştirmek xargsiçin xargs echove bunu çalışan çıkan komutu yerine yazdırılır.)

Bu teknik, bir hedef uygulama için geri almak istediğiniz herhangi bir şey için çalışmalıdır. Yeni bir .desktopdosya oluşturmanız bile gerekmez (mevcut olanı kullanabilirsiniz). Bu ekstra adımı yaptım, böylece kaçınılmaz olarak resim önizleyicilere olan bağlılığımı değiştirdiğimde, sadece bu dosyayı değiştirmem gerekiyor.


1

18.04 Ubuntu'da öncelik sırasını en güçlüden en zayıfına şu şekilde buldum:

  1. ~/.local/share/applications/defaults.list
  2. /usr/share/applications/defaults.list
  3. ~/.config/mimeapps.list ("Başka Uygulama ile Aç" bunu güncelleyecektir)
  4. ~/.local/share/applications/mimeapps.list
  5. mimeinfo.cacheUyumlu uygulamaların kayıt defterinde ilk kez karşılaşılan ve .desktopiçinde mevcut olan dosyalardan üretilen ve kullanılarak yeniden üretilebilen eşleşme ./usr/share/applications/usr/local/share/applicationsupdate-desktop-database
  6. (Hiç kullanılmamış) /etc/gnome/defaults.list
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.