Dosya dernekleri nerede saklanmaktadır?

57

Ubuntu veya başka bir Linux sistemi dosya ilişkilerini nasıl saklar?

Bazı /etc/asscociations dosyası veya başka bir şey var mı?

Dosyanın üzerine sağ tıklayıp "open with" ile değiştirebileceğimi biliyorum, ancak içeride nasıl saklandığını merak ediyorum.

    
sordu Stann 07.12.2010 21:29

9 cevap

57

Dosya yöneticisi (varsayılan olarak Nautilus), hangi programın kullanılacağını belirlemek için bir dosyanın MIME türünü kullanır. onu aç. Bir uygulama yüklendiğinde, hangi MIME türlerinin açabileceğini ve /usr/share/applications dizininde bulunan .desktop dosyasındaki dosyaları açmak için kullanılacak komutu belirtebilir. 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;

MimeType alanına bakın - bu, desteklenen MIME türlerini listeler. Exec alanı, sistemin gimp-2.7 %U komutunu kullanmasını ve '% U' dosyasını açılacak dosyalarla değiştirmesini söyler. (Not GIMP 2.7, bir PPA'dan yüklediğim bir sürümdür, dolayısıyla Ubuntu depolarındaki geçerli sürümden daha yüksektir).

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

Bu, sisteme, söz konusu MIME türü için hangi uygulamaların kullanabileceğini söyler ve 'Birlikte Aç' listesinde uygulamaları sağlar. Varsayılan, başka bir yerde tanımlanmıştır. % Co_de% dosyası, sistem varsayılanları için bilgi sağlar. Aksini seçmedikçe, bunlar bir dosyayı 'Açtığınızda' kullanılan uygulamalardır.

    
verilen cevap dv3500ea 07.12.2010 21:51
21

dv3500ea'nın mükemmel yanıtını tamamlamak için, ilişkilendirmelerinizi değiştirdiğinizde neler olabileceğine dair bilgi eklemek istiyorum.

defaults.list ('varsayılanları bulun.list' yazarak bulabilirsiniz) her MIME türüyle ilişkili uygulamaların listesini verirken, yaptığınız tüm özelleştirmeler giriş dizinizde saklanır. ~ / .local / share / uygulamalar / mimeapps.list. Dolayısıyla, ilişkilendirmeler ekler veya çıkarırsanız veya varsayılan ilişkilendirmeyi değiştirirseniz, bu dosya güncellenir.

İşte adresindeki GNOME Masaüstü Sistem Yönetimi Kılavuzu, mimeapps.list tartışması görünmüyor ancak İşte 'de aşağıdaki açıklamayı buldum:

  

mimeapps.list konumunda bulunuyor:   $ XDG_DATA_DIRS / uygulamalar. Onun   amaç mime eklemek veya kaldırmak   uygulamalardan çağrılar.   nautilus yazıyor   ~ / .local / share / uygulamalar / mimeapps.list   kullanıcı değişiklik yaptığında   "Birlikte Aç" iletişim kutusu.

    
verilen cevap user8979 29.01.2011 12:42
12

Sistemimde (Debian Jessie), yanlışlıkla, gedit ile belirli bir dosya türünü açmak için oluşturduğum bir ilişkilendirmeyi içeren bir% co_de yüzdesi bulunduğunu keşfettim. Bunu düzeltmenin standart yollarından hiçbiri (varsayılan uygulama ayarları, Thunar açık özelliği) bunu yansıtmış, ancak gedit varsayılan uygulama olmuştur.

Satırı ~/.config/mimeapps.list 'den silemedim ve şimdi doğru uygulama dosyayı açar.

    
verilen cevap Bryan Leaman 10.01.2015 19:24
6

Aşağıdaki kodlarla truecrypt.desktop dosyasında ~/.local/share/applications dosyası oluşturun:

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

sonra ~/.local/share/applications/mimeapps.list dosyasını düzenleyin ve şu satırı ekleyin:

application/octet-stream=truecrypt.desktop

Bu komutu çalıştırarak Truecrypt'in mime tipini buldum:

file --mime-type -b <any truecrypt filename>
    
verilen cevap Blindfreddy 13.03.2012 17:32
6

Bunun gibi bir ilişkilendirme yapabildim:

xdg-mime default xnview.desktop image/jpeg

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

sudo update-desktop-database dosyasını çalıştırmam gerekmedi.

    
verilen cevap warvariuc 21.06.2015 12:00
5

Varsayılan ilişkilendirmeyle ilgili bu bağlantıyı buldum, yardımcı olabilir. İşte
global ilişkilendirme için:

/usr/share/applications/mimeapps.list

kullanıcı ilişkilendirmesi başına:

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

sözdizimi şöyledir:

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

[Eklenen Dernekler] bölümü, azalan tercihte tercih edilen (varsayılan) uygulamaları belirtmek için kullanılır. Bu, desktopfile1 'in en çok tercih edilen ve desktopfileN ' nin en az tercih edildiği anlamına gelir.
[Removeed Associations] bölümü, daha önce devralınan herhangi birini açıkça kaldırmak için kullanılır dernekler.

    
verilen cevap MusuNaji 23.08.2013 10:16
2

mimeapps.list arama yolu

Diğerleri bu dosyadan bahsetmişlerdir, ancak hiçbiri konumunu tam olarak açıklamamıştır.

freedesktop.org standardı İşte ’de:

  

Bu dosya için arama sırası şu şekildedir:

$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 İşte 'de verilmiştir:

  • $XDG_DATA_HOME : $HOME/.local/share
  • $XDG_CONFIG_HOME : $HOME/.config
  • $XDG_DATA_DIRS : yok, XDG_DATA_HOME 'ye eklendi
  • $XDG_CONFIG_DIRS : yok, XDG_CONFIG_HOME 'ye eklendi

Ubuntu'nun eski sürümleri ~/.config dosyasını kontrol etmeyebilir, bu yüzden ~/.local/share 'yi de 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üzenler.

    
1

Tüm kullanıcılar için:

  

/usr/share/applications/defaults.list

Her kullanıcının bu varsayılanları geçersiz kılmak için bir yapılandırma dosyası vardır:

  

~ / .config / mimeapps.list

Ayrıca kullanılabilecek yerler için İşte konusuna bakın. varsayılanları geçersiz kılmak için.

Değiştirmek istediğiniz dosyanın mim türünü bilmelisiniz.

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

  

xdg-MIME

    
verilen cevap Xoristzatziki 02.08.2017 09:19
0

Freedesktop.org (daha önce X Masaüstü Grubu, dolayısıyla "XDG" kısaltması) şu anda bu gibi X standartlarını kullanan gruptur ( Wikipedia'da daha fazla bilgi edinin ).

warvariuc'un yanıtı zaten xdg-mime kullanımı şöyle:

xdg-mime default xnview.desktop image/jpeg

Görüntü düzenleyicileri ve görüntüleyenlerle çok fazla oynamadan sonra, özellikle daha az görüntü türleri arasında neredeyse hiç tutarlılık olmaksızın farklı görüntü türleri için farklı görüntüleyenlerle karşılaştım.

Yukarıdaki komutu alıp görüntü izleyiciler tarafından kontrol edilen MIME türlerinin her birine atandım ve ardından bunlardan birini klonlayarak yeni bir image-viewer.desktop oluşturdu (bu isteğe bağlı, yalnızca favorinizi tekrar kullanabilirsiniz). Ardından, MIME türlerinden hiçbirinin tercih edilen yeni uygulamam ile uyumlu olmadığını manuel olarak doğruladım. Son olarak, bu uygulamanın diğer tüm uygulamaların MIME türleri için varsayılan olacağını belirledim:

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

Bu, görüntüleyenlerin her biri için .desktop dosyasını inceler ( Ristretto , Geeqie ve GThumb benim durumumda), MIME tanımını ayıklar ( MimeType= ile ön yüz yüze sonra da noktalı virgülle ayrılmış bir liste içerir), (önceden eşleştirilmiş) önyüz etiketini kaldırır ve listeyi bir bölüme ayırır. satır başına giriş. sort -u sonra gereksiz satırları kaldırır, daha sonra yeni varsayılanları ayarlamak için xdg-mime 'ya teslim edilir.

(Bunu çalıştırmadan önce bunu test etmek isterseniz, xargs 'yı xargs echo olarak değiştirin ve sonuçta bu komutu çalıştırmak yerine yazdırabilirsiniz.)

Bu teknik, bir hedef uygulama için geri almak istediğiniz her şey için çalışmalıdır. Yeni bir .desktop dosyası oluşturmanıza bile gerek yoktur (mevcut olanı kullanabilirsiniz). Bu ek adımı yaptım, böylece görüntü önizleyicileri arasındaki bağlılığımı kaçınılmaz olarak değiştirdiğimde, sadece bir dosyayı değiştirmem gerekiyor.

    
verilen cevap Adam Katz 08.09.2016 03:36

Etiketlerdeki diğer soruları oku