it-swarm-tr.com

Dosya dernekleri nerede saklanır?

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

/etc/asscociations dosyası var mı?

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

66
Stann

Dosya yöneticisi (Nautilus, varsayılan olarak), hangi programı açacağını belirlemek için bir dosyanın MIME tipi değerini kullanır. Bir uygulama yüklendiğinde, hangi MIME türlerini açabileceğini ve dosyaları /usr/share/applications içine yerleştirilen .desktop dosyasında 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ı, sisteme, '% U' yerine açılan dosyaları değiştirerek gimp-2.7 %U komutunu kullanmasını 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, sisteme o MIME türü için hangi uygulamaların kullanılabileceğini bildirir ve uygulamaları 'Birlikte Aç' listesinde sağlar. Varsayılan başka yerde tanımlanmıştır. /usr/share/applications/defaults.list dosyası, 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.

66
dv3500ea

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 kaldırır ya da 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ı buldum. http://live.gnome.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.

23
user8979

Sistemimde (Debian Jessie) ayrıca gedit ile belirli bir dosya türünü açmak için yanlışlıkla oluşturduğum bir ilişkiye sahip olan bir ~/.config/mimeapps.list olduğunu gördüm. Bunu düzeltmenin standart yollarından hiçbiri (varsayılan uygulama ayarları, Thunar's with with özelliği) bunu yansıtmıyordu, ancak gedit varsayılan uygulamaydı.

Satırı ~/.config/mimeapps.list içinden kaldırmayı başardım ve şimdi doğru uygulama dosyayı açıyor.

18
Bryan Leaman

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

Sudo update-desktop-database çalıştırmama gerek yoktu.

8
warvariuc

Varsayılan bağlantıyla ilgili bu bağlantıyı buldum, yardımcı olabilir. https://wiki.archlinux.org/index.php/Default_Applications
küresel birliktelik için:

/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. bunun anlamı desktopfile1 en çok tercih edilen ve desktopfileN en az tercih edilen yöntemdir.
[Kaldırılan İlişkiler] bölümü daha önce devralınan ilişkilerin açıkça kaldırılmasında kullanılır.

7
MusuNaji

Bir dosya oluşturun [truecrypt.desktop içinde ~/.local/share/applications içinde aşağıdaki satırlarla:

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

daha sonra ~/.local/share/applications/mimeapps.list dosyasını düzenleyin ve 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>
7
Blindfreddy

mimeapps.list arama yolu

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

Freedesktop.org standardı şöyle diyor: https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.html :

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

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

Ubuntu'nun eski sürümleri ~/.config öğesini kontrol etmeyebilir, bu yüzden ~/.local/share öğesini de denediğinizden emin olun.

Gibi komutlar:

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

bu dosyaları otomatik olarak düzenleyecektir.

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 bakınız https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html varsayılan ayarları geçersiz kılmak için kullanılabilecek yerler için.

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

2
Xoristzatziki

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's answer zaten bahseder xdg-mime Kullanım şekli:

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 sonra bunlardan birini klonlayarak yeni bir image-viewer.desktop oluşturdum (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 olmayacağını manuel olarak 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, izleyicilerin her biri için .desktop dosyalarını inceler ( Ristretto , Geeqie ve GThumb benim durumumda), MIME ayıklanır. tanımı (MimeType= tarafından ön tanımlı hale getirilir ve ardından noktalı virgülle ayrılmış bir liste içerir), (daha önce eşleşen) önsöz etiketini kaldırır ve listeyi satır başına bir girişe böler. sort -u sonra gereksiz satırları kaldırır, ardından yeni varsayılanları ayarlamak için xdg-mime öğesine verilirler.

(Canlı yayınlanmadan önce bunu test etmek istiyorsanız, xargs - xargs echo olarak değiştirin, komut yerine çalıştırmak yerine elde edilen komutu yazacaktır.)

Bu teknik, bir hedef uygulama için geri almak istediğiniz herhangi bir şey için çalışmalıdır. Yeni bir .desktop dosyası bile oluşturmanıza gerek yoktur (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
Adam Katz

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.cache.desktop ve /usr/share/applications içinde mevcut olan /usr/local/share/applications dosyasından oluşturulan ve : update-desktop-database .
  6. (Hiç kullanılmamış) /etc/gnome/defaults.list
1
Jimmy He