এটি করণীয়, তবে সম্ভবত আপনি যা ভাবেন ঠিক তত সহজ নয়। ইউনিফর্ম টাইপ আইডেন্টিফায়ারগুলির সাথে আপনার খুব পরিচিত হওয়া দরকার। উইকিপিডিয়ায় ইউনিফর্ম টাইপ আইডেন্টিফায়ার পৃষ্ঠাটি দেখুন।
ওএস এক্স নামের সাথে একটি অগ্রাধিকার ফাইলে পছন্দের ফাইল সংস্থাগুলির তথ্য সঞ্চয় করে com.apple.LaunchServices.plist
। আপনি সেই ফাইলটি সন্ধান এবং সংশোধন করার চেষ্টা করার আগে, আমি আপনাকে ডিফল্ট (ওরফে "সেটিংস") এর জন্য ওএস এক্স এর ডোমেন হায়ারার্কির সাথে নিজেকে পরিচিত করার পরামর্শ দিই। এখানে একটি শালীন নিবন্ধ পাওয়া যাবে । (অস্বীকৃতি: তারা site সাইটে কিছু বিক্রি করছে বলে মনে হচ্ছে it এটি কী তা আমি জানি না এবং তাদের সাথে কোনও সম্পর্ক নেই, ব্যাখ্যাটি কেবল একটি ভাল))
আপনি যখন ডিফল্ট এবং ইউটিআই (er, চিকিত্সার ধরণের নয়) সম্পর্কে সমস্ত জানেন, এখন আমরা স্ক্রিপ্ট / কমান্ড লাইন থেকে ফাইল সংযুক্তি স্থাপনের বিষয়ে কথা বলতে পারি।
প্রথমত, যে ফাইলগুলির জন্য আপনি সমিতি তৈরি করতে চান সেগুলি সনাক্ত করার জন্য আপনার সঠিক উপায়টি জানতে হবে।
মনে আছে কীভাবে আমি বলেছিলাম ইউটিআই গুরুত্বপূর্ণ ছিল? ফাইল শনাক্ত করার একাধিক উপায় রয়েছে। টাইপটি আপনার সিস্টেমে আনুষ্ঠানিকভাবে ঘোষণা করা হয়েছে কিনা তা নির্ভর করে। উদাহরণস্বরূপ, টেক্সটমেট বা টেক্সটর্যাংলারের মতো শালীন পাঠ্য সম্পাদকরা যখন আপনি আপনার সিস্টেমে এটি ব্যবহার করেন তখন শ্রেণিবিন্যাসের জন্য বেশ কয়েকটি প্রকারের ঘোষণা যুক্ত করবেন। তবে, যদি আপনার কাছে সেই অ্যাপ্লিকেশন না থাকে তবে আপনার কাছে এই ধরণের প্রকারের ঘোষণা থাকতে পারে না।
ঠিক আছে, যথেষ্ট আলাপ। উদাহরণ:
কোনও ফাইলের জন্য ইউটিআই পান:
$ mdls myFile.xml
...
kMDItemContentType = "public.xml"
kMDItemContentTypeTree = (
"public.xml",
"public.text",
"public.data",
"public.item",
"public.content"
)
...
ঠিক আছে শান্ত হও. একটি সুস্পষ্ট সামগ্রীর প্রকার আমরা ব্যবহার করতে পারি। এটা কোথাও লিখুন।
$ mdls myFile.myExtn
...
kMDItemContentType = "dyn.ah62d4rv4ge8048pftb4g6"
kMDItemContentTypeTree = (
"public.data",
"public.item"
)
...
উফ। ওএস এক্স ".myExtn" ফাইল সম্পর্কে জানেন না। সুতরাং, এটি একটি গতিশীল ইউটিআই তৈরি করেছে যা আমরা কোনও কিছুর জন্য ব্যবহার করতে পারি না। এবং অভিভাবক প্রকারগুলি কার্যকর হওয়ার পক্ষে খুব জেনেরিক।
এখন আমাদের ফাইলগুলি কী তা আমরা জানি, আসুন LaunchServices.plist ফাইলটি দেখুন এবং আমরা কী করতে পারি তা দেখুন:
$defaults read com.apple.LaunchServices
{
...
LSHandlers = (
{
LSHandlerContentType = "public.html";
LSHandlerRoleAll = "com.apple.safari";
LSHandlerRoleViewer = "com.google.chrome";
},
...
{
LSHandlerContentTag = myExtn;
LSHandlerContentTagClass = "public.filename-extension";
LSHandlerRoleAll = "com.macromates.textmate";
},
...
);
...
}
সুতরাং, যখন আপনার ব্যবহার করার জন্য একটি "ভাল" বিষয়বস্তু রয়েছে, প্রথম নির্মাণটি আরও ভাল। অন্যথায় অন্য নির্মাণ। দ্রষ্টব্য, এই ফাইলটিতে অন্য নির্মাণ রয়েছে তবে তারা যা চেয়েছিল সেগুলির সাথে তারা প্রাসঙ্গিক নয়। আপনি যখন আউটপুটটি দেখেন তখন কেবল তারা জানেন know
আপনি দেখতে পাচ্ছেন, আপনি যে অ্যাপ্লিকেশনটি ব্যবহার করতে চান তার জন্য আপনাকে ইউটিআই সন্ধান করতে হবে। সাফার এবং টেক্সটমেটের জন্য ইউটিআইগুলি আমার উপরের উদাহরণে রয়েছে তবে সাধারণভাবে কোনও অ্যাপ্লিকেশনের জন্য ইউটিআই খুঁজে পেতে:
$ cd /Applications/MyApp.app/Contents
$ less Info.plist
...
<key>CFBundleIdentifier</key>
<string>com.apple.Safari</string>
...
দ্রষ্টব্য: এলএসহ্যান্ডলাররোলআল এবং এলএসএ্যান্ডেলরোলভিউয়ের মধ্যে পার্থক্যটি কী তা আমার কোনও ধারণা নেই । আমি এটি কোথাও ডকুমেন্টেশন খুঁজে পাচ্ছি না। আমি যা দেখছি তা হল 99% সময় এলএসহ্যান্ডলারলোলএল একটাই সেট (যেমন কোনও এলএসহ্যান্ডলারলোলভিউয়ার নেই) এবং আপনি যে ধরণের সাথে সংযুক্ত হতে চান সেই অ্যাপ্লিকেশনটির জন্য এটি ইউটিআইতে সেট করা আছে।
আপনাকে এতোদূর এনে দিয়ে, পাঠকদের জন্য অনুশীলন হিসাবে আপনি যে মানগুলি চান তা সেট করতে আমি কীভাবে চলে যাব। এই জিনিসগুলির সাথে জগাখিচুড়ি কিছুটা বিপজ্জনক হতে পারে। আপনার পক্ষে কোনও ফাইল স্ক্রু করা এবং আপনার ফাইল সংস্থার কোনও কাজ না করা সম্পূর্ণভাবে সম্ভব। তারপরে আপনাকে ফাইলটি ফেলে দিতে হবে এবং আবার শুরু করতে হবে।
কিছু ইঙ্গিত:
- পড়ুন
defaults write
এবং এর সিনট্যাক্স
- একবার দেখুন
PlistBuddy
। man PlistBuddy
এবং/usr/libexec/PlistBuddy -h
- এই সমস্ত বাজে কথা সম্পূর্ণভাবে এড়িয়ে যান এবং আরসিডিএফএল্ট অ্যাপ্লিকেশন ব্যবহার করুন