फ़ाइल संघों को कहाँ संग्रहीत किया जाता है?


67

उबंटू या कोई अन्य लिनक्स सिस्टम फ़ाइल संघों को कैसे संग्रहीत करता है?

कुछ /etc/asscociationsफाइल है या कुछ और है?

मुझे पता है कि मैं फ़ाइल पर राइट क्लिक कर सकता हूं और इसे "ओपन के साथ" के माध्यम से बदल सकता हूं, लेकिन मैं यह जानने के लिए उत्सुक हूं कि यह आंतरिक रूप से कैसे संग्रहीत किया जाता है।

जवाबों:


67

फ़ाइल प्रबंधक (Nautilus, डिफ़ॉल्ट रूप से) यह निर्धारित करने के लिए किस प्रोग्राम को खोलने के लिए MIME प्रकार की फ़ाइल का उपयोग करता है । जब कोई एप्लिकेशन इंस्टॉल होता है, तो यह निर्दिष्ट कर सकता है कि किस MIME प्रकार को खोल सकता है और फ़ाइलों को खोलने के लिए उपयोग करने के लिए कमांड .desktop फ़ाइल जो अंदर रखी गई है /usr/share/applications। यह मेनू, डेस्कटॉप शॉर्टकट आदि के लिए उपयोग की जाने वाली फाइल है।

उदाहरण के लिए, GIMP के पास .desktop फ़ाइल है:

[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फ़ील्ड देखें - यह समर्थित MIME प्रकारों को सूचीबद्ध करता है। Execफ़ील्ड कमांड का उपयोग करने के लिए सिस्टम को बताता है gimp-2.7 %U, खोलने के लिए फ़ाइलों के साथ '% U' को प्रतिस्थापित करता है। (नोट GIMP 2.7 एक ऐसा संस्करण है जिसे मैंने पीपीए से स्थापित किया है, इसलिए यह उबंटू रिपॉजिटरी में वर्तमान संस्करण से अधिक है)।

जब अनुप्रयोग पैकेज स्थापित होता है, तो सिस्टम इस MIME प्रकार के डेटा को अधिक आसानी से सुलभ डेटाबेस में निकालता है क्योंकि प्रत्येक .desktop फ़ाइल में देखने पर बहुत समय लगेगा यदि यह हर बार एक फ़ाइल को खोला गया था।

यह सिस्टम को बताता है कि उस MIME प्रकार के लिए कौन से एप्लिकेशन का उपयोग किया जा सकता है और 'ओपन विथ' सूची में एप्लिकेशन प्रदान करता है। डिफ़ॉल्ट को कहीं और परिभाषित किया गया है। फ़ाइल /usr/share/applications/defaults.listसिस्टम डिफॉल्ट के लिए जानकारी प्रदान करती है। जब तक आप अन्यथा नहीं चुनते हैं, ये तब उपयोग किए जाने वाले अनुप्रयोग हैं जब आप किसी फ़ाइल को 'ओपन' करते हैं।


7
MIME प्रकार को /usr/share/applications .desktopफ़ाइलों में बदलने के बाद , क्या उस MIME डेटाबेस को नए संघों को कार्रवाई में देखने के लिए फिर से बनाने की आज्ञा है?
रेड्संड्रो

12
हाँ। sudo update-desktop-databaseदेखें jarrpa.net/2011/10/28/...
NoBugs

स्थानीय परिवर्तनों के लिए एक अधिक उपयुक्त स्थान है /usr/local/share/applications। मुझे लगता है कि gtk डिफ़ॉल्ट रूप से भी दिखता है। यह मेरे सिस्टम पर करता है, लेकिन इसे उबंटू 7.04 या इसके बाद से अपग्रेड नहीं किया गया है।
पीटर कॉर्ड्स

2
: उबंटू freedesktop.org पालन करने के लिए लगता है standards.freedesktop.org/mime-apps-spec/... , एक भयानक परियोजना।
सिरो सेंटिल्ली 新疆 改造 i i 事件 '

23

DV3500ea के उत्कृष्ट उत्तर के पूरक के लिए, मैं कुछ जानकारी जोड़ना चाहूंगा कि जब आप अपने संघों को बदलते हैं तो क्या होता है।

जबकि डिफॉल्ट्स लिस्ट (जिसे आप 'डिफाल्ट डिफॉल्ट.लिस्ट' टाइप करके पा सकते हैं) प्रत्येक MIME टाइप से जुड़े एप्लिकेशन की सूची प्रदान करता है, जो भी कस्टमाइजेशन आप अपने होम डायरेक्टरी में संग्रहीत करते हैं, ~ / .local में। शेयर / अनुप्रयोगों / mimeapps.list। इसलिए यदि आप संघों को जोड़ते या हटाते हैं, या डिफ़ॉल्ट एसोसिएशन को बदलते हैं, तो यह फ़ाइल अपडेट की जाती है।

गनोम डेस्कटॉप सिस्टम एडमिनिस्ट्रेशन गाइड http://library.gnome.org/admin/system-admin-guide/stable/ पर mimeapps.list चर्चा नहीं करता है, लेकिन मुझे http: //live.gnome पर निम्न विवरण मिला। .org / SysAdminGuideUpdate :

mimeapps.list $ XDG_DATA_DIRS / एप्लिकेशन में स्थित है। इसका उद्देश्य अनुप्रयोगों से माइम संघों को जोड़ना या हटाना है। उपयोगकर्ता द्वारा "ओपन विद डायलॉग" में परिवर्तन किए जाने पर nautilus ~ / .local / share / Applications / mimeapps.list लिखता है।


1
लेकिन Ubuntu 12.04 का उपयोग करते हुए, मुझे एहसास हुआ कि mimeapps.listप्रविष्टियों द्वारा ओवरराइड की गई है defaults.list
फीतेला

1
14.04 को, मैं अपने में / vlc / mplayer / s करने में सक्षम था ~/.local/share/applications/mimeapps.list, और pcmanfm जैसी प्रक्रियाओं को फिर से शुरू किए बिना परिवर्तनों को उठाया। । (mplayer.desktop बस चलाता है MPlayer मैं एक / usr / स्थानीय, मुझे लगता है में स्थापित एक पुराने MPlayer से चारों ओर झूठ बोल रही थी IDK यदि होने एक। MimeType=list;या जरूरत थी नहीं।
पीटर Cordes

अधिक सटीक रूप से, mimeapps.listनिम्नलिखित खोज पथ में कहीं भी हो सकते हैं: विनिर्देशों.
freedesktop.org/mime-apps-spec/…

18

मैंने पाया कि मेरे सिस्टम (डेबियन जेसी) पर भी एक ~/.config/mimeapps.listऐसा संघ था, जिसे मैंने गलती से एक विशिष्ट फ़ाइल प्रकार खोलने के लिए बनाया था। इसे सही करने के किसी भी मानक तरीके (डिफ़ॉल्ट एप्लिकेशन सेटिंग्स, थूनर की संपत्ति के साथ खुला ) ने इसे प्रतिबिंबित नहीं किया, लेकिन गेडिट डिफ़ॉल्ट एप्लिकेशन था।

मैं लाइन को हटाने में सक्षम था ~/.config/mimeapps.listऔर अब सही एप्लिकेशन फ़ाइल को खोलता है।


2
धन्यवाद, आपने गलती से मुझे Gedit में सब कुछ खोलने वाले फ़ायरफ़ॉक्स को ठीक करने में मदद की। OpenSUSE 13.2 पर मैंने "एप्लिकेशन / ऑक्टेट-स्ट्रीम = org.gnome.gedit.desktop;" के साथ लाइन को हटा दिया। :)
user31389

3
ubuntu 15.04 के बाद से उपयोगकर्ता-विशिष्ट संशोधनों को भी संग्रहीत किया जाता है ~/.config/mimeapps.list
डीजे क्रशडम्मी

2
अधिक सटीक रूप से, mimeapps.listनिम्न खोज पथ में कहीं भी हो सकते हैं: विनिर्देशों.
freedesktop.org/mime-apps-spec/…

8

मुझे डिफ़ॉल्ट एसोसिएशन से संबंधित यह लिंक मिला, यह मददगार हो सकता है। वैश्विक संघ के लिए https://wiki.archlinux.org/index.php/Default_Applications
:

/usr/share/applications/mimeapps.list

प्रति उपयोगकर्ता एसोसिएशन:

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

सिंटैक्स निम्नानुसार है:

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

[जोड़े गए संघों] अनुभाग को वरीयता में कमी में पसंदीदा (डिफ़ॉल्ट) अनुप्रयोगों को निर्दिष्ट करने के लिए उपयोग किया जाता है। जिसका मतलब है कि Desktopfile1 सबसे पसंदीदा है और DesktopfileN कम से कम पसंद किया जाता है।
[हटाए गए संघों] अनुभाग का उपयोग किसी भी पुराने विरासत वाले संगठनों को स्पष्ट रूप से हटाने के लिए किया जाता है।


1
यह एक आर्चलिनक्स साइट से आता है , जरूरी नहीं कि यह उबंटू पर लागू हो, /usr/share/applications/mimeapps.listमौजूद नहीं है।
guntbert

इसे इंगित करने के लिए धन्यवाद, हालांकि उपयोगकर्ता ने उबंटू या अन्य लिनक्स सिस्टम में कहा, इसका मतलब यह है कि उसके प्रश्न का उत्तर भी है: पी।
मुसुनाजी 17

5
इस उत्तर पूरी तरह से ठीक है अगर आप को बदलने के mimeapps.desktopसाथdefaults.desktop
SZX

8

मैं इस तरह एक एसोसिएशन स्थापित करने में सक्षम था:

xdg-mime default xnview.desktop image/jpeg

आप संघों को भी हटा सकते हैं और अन्य काम कर सकते हैं: man xdg-mime

मुझे दौड़ने की जरूरत नहीं थी sudo update-desktop-database


7

एक फ़ाइल बनाएँ truecrypt.desktopमें ~/.local/share/applicationsनिम्नलिखित लाइनों के साथ:

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

फिर फ़ाइल को संपादित करें ~/.local/share/applications/mimeapps.listऔर निम्न पंक्ति जोड़ें:

application/octet-stream=truecrypt.desktop

मुझे इस आदेश का पालन करते हुए Truecrypt के माइम प्रकार का पता चला:

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

अच्छा जवाब है, क्योंकि यह उन लोगों के लिए काम करता है जो kde का उपयोग करते हैं, लेकिन फ़ायरफ़ॉक्स की तरह gtk-native प्रोग्राम के कुछ जोड़े हैं।
naught101

5

mimeapps.list खोज पथ

अन्य लोगों ने इस फाइल का उल्लेख किया है, लेकिन किसी ने भी यह नहीं बताया कि यह स्थान ठीक है।

Freedesktop.org मानक https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.html पर कहता है :

इस फ़ाइल का लुकअप ऑर्डर इस प्रकार है:

$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

और फिर उन पर्यावरण चर के लिए डिफ़ॉल्ट मान https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html पर दिए गए हैं :

  • $XDG_DATA_HOME: $HOME/.local/share
  • $XDG_CONFIG_HOME: $HOME/.config
  • $XDG_DATA_DIRS: कोई नहीं, के लिए संलग्न है XDG_DATA_HOME
  • $XDG_CONFIG_DIRS: कोई नहीं, के लिए संलग्न है XDG_CONFIG_HOME

उबंटू के पुराने संस्करणों की जांच नहीं हो सकती है ~/.config, इसलिए सुनिश्चित करें कि आप भी कोशिश करें ~/.local/share

जैसे आदेश:

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

स्वचालित रूप से उन फ़ाइलों को संपादित करेगा।


2

सभी उपयोगकर्ताओ के लिए:

/usr/share/applications/defaults.list

प्रत्येक उपयोगकर्ता के पास इन डिफ़ॉल्ट को ओवरराइड करने के लिए एक कॉन्फिग फ़ाइल है:

~ / .Config / mimeapps.list

उन स्थानों के लिए https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html भी देखें जो कि चूक को ओवरराइड करने के लिए उपयोग किए जा सकते हैं।

आपको उस फ़ाइल के माइम-प्रकार का पता होना चाहिए जिसे आप बदलना चाहते हैं।

साथ ही सभी संघों को कमांड लाइन में प्रयोग करके बदला जा सकता है:

XDG-माइम


1

Freedesktop.org (जिसे पहले X डेस्कटॉप समूह कहा जाता था, इस प्रकार "XDG" संक्षिप्त नाम) वह समूह है जो वर्तमान में इस तरह एक्स मानक चला रहा है ( विकिपीडिया पर अधिक जानें )।

Warvariuc के उत्तर में पहले से ही xdg-mime उपयोग का उल्लेख है :

xdg-mime default xnview.desktop image/jpeg

 

छवि संपादकों और दर्शकों के साथ खेलने के बाद, मैंने अलग-अलग दर्शकों के लिए अलग-अलग छवि प्रकारों के साथ लगभग कोई निरंतरता के साथ समाप्त किया, विशेष रूप से दुर्लभ छवि प्रकारों के बीच।

मैंने उपरोक्त आदेश लिया और छवि दर्शकों द्वारा नियंत्रित MIME प्रकारों में से प्रत्येक को सौंपा और फिर image-viewer.desktopउनमें से एक का क्लोन बनाकर एक नया बनाया (यह वैकल्पिक है, आप केवल अपने पसंदीदा का पुन: उपयोग कर सकते हैं)। इसके बाद, मैंने मैन्युअल रूप से सत्यापित किया कि MIME प्रकारों में से कोई भी मेरे नए पसंदीदा अनुप्रयोग के साथ असंगत नहीं होगा। अंत में, मैंने उस एप्लिकेशन को अन्य सभी एप्लिकेशन के MIME प्रकारों के लिए डिफ़ॉल्ट होने के लिए सेट किया:

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

यह जांच करता है .desktopदेखने वाले लोग (से प्रत्येक के लिए फ़ाइलों ristretto , Geeqie , और GThumb मेरे मामले में), माइम परिभाषा निकालता है (जिसके द्वारा prefaced है MimeType=, और उसके बाद अर्धविराम पृथक सूची में शामिल है) (पहले मिलान) प्रस्तावना लेबल निकाल दिया जाता है, और सूची को प्रति पंक्ति एक प्रविष्टि में विभाजित करता है। sort -uफिर निरर्थक लाइनों को हटाता है, फिर वे xdg-mimeनए डिफॉल्ट सेट करने के लिए सौंप दिए जाते हैं ।

(यदि आप इसे चलाने से पहले इसका परीक्षण करना चाहते हैं, तो इसे बदल xargsदें xargs echoऔर यह इसे चलाने के बजाय परिणामी कमांड को प्रिंट कर देगा।)

यह तकनीक किसी भी चीज के लिए काम करना चाहिए जिसे आप एक लक्ष्य एप्लिकेशन के लिए पुनः प्राप्त करना चाहते हैं। आपको एक नई .desktopफ़ाइल बनाने की भी आवश्यकता नहीं है (आप किसी मौजूदा का उपयोग कर सकते हैं)। मैंने वह अतिरिक्त कदम उठाया, ताकि जब मैं छवि पूर्वावलोकनकर्ताओं के बीच अपनी निष्ठा को अनिवार्य रूप से बदलूं, तो मुझे केवल उस एक फ़ाइल को बदलने की आवश्यकता है।


1

उबंटू 18.04 पर, मैंने पूर्ववर्ती होने का क्रम निम्नानुसार पाया है, सबसे मजबूत से सबसे कमजोर तक:

  1. ~/.local/share/applications/defaults.list
  2. /usr/share/applications/defaults.list
  3. ~/.config/mimeapps.list ("अन्य एप्लिकेशन के साथ खोलें" इसे अपडेट करेंगे)
  4. ~/.local/share/applications/mimeapps.list
  5. में पहली का सामना करना पड़ा मैच mimeinfo.cacheसंगत अनुप्रयोगों, जिसमें से उत्पन्न कर रहे हैं की रजिस्ट्री .desktopफ़ाइलों में पेश /usr/share/applicationsऔर /usr/local/share/applications, और का उपयोग कर पुनर्जीवित किया जा सकता है update-desktop-database
  6. (कभी प्रयोग नहीं हुआ) /etc/gnome/defaults.list
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.