স্ক্রিপ্ট / কমান্ড লাইনের মাধ্যমে ডিফল্ট অ্যাপ্লিকেশন (কোনও ফাইল এক্সটেনশনের জন্য) পরিবর্তন করবেন?


11

কোনও অ্যাপল স্ক্রিপ্ট, কমান্ড লাইন কমান্ড (যেমন defaults write [...]) এর মাধ্যমে ফাইল এক্সটেনশনের জন্য ডিফল্ট অ্যাপ্লিকেশনটিকে সংজ্ঞায়িত করার কোনও উপায় আছে কি ?

আমি জানি যে আপনি তথ্য প্যানেলের মাধ্যমে বা আরসিডিএফফল্ট অ্যাপ্লিকেশন ব্যবহার করে ম্যানুয়ালি এটি পরিবর্তন করতে পারবেন তবে আমাকে অনেকগুলি মেশিন এবং ব্যবহারকারী অ্যাকাউন্ট সেটআপ করতে হবে যাতে আমি প্রক্রিয়াটি স্বয়ংক্রিয় করার কোনও উপায় খুঁজে পেতে চাই।

উত্তর:


6

ডুটি হ'ল শেল ইউটিলিটি যা ফাইল প্রকার এবং ইউআরএল স্কিমগুলির জন্য ডিফল্ট অ্যাপ্লিকেশনগুলি কনফিগার করতে একটি পাঠ্য ফাইল ব্যবহার করে সক্ষম করে।

উদাহরণস্বরূপ কোনও ফাইল সংরক্ষণ করুন ~/.duti:

com.gnu.Emacs public.plain-text all 
com.gnu.Emacs public.unix-executable all
org.videolan.vlc .mkv all

তারপরে দৌড়াও duti ~/.duti

আপনি brew install dutiদৌড় দিয়ে বা চালিয়ে ইনস্টল করতে পারেন wget https://github.com/fitterhappier/duti/archive/duti-1.5.2.tar.gz;tar -xf duti-1.5.2.tar.gz;cd duti-duti-1.5.2;./configure;make;sudo make install


এটি আশাব্যঞ্জক বলে মনে হচ্ছে, যদিও আমি এটি OS X 10.7.x বা 10.8.x: এ সংকলন করতে পারি না checking which SDK to use... configure: error: darwin12.0.0 is not a supported system
ম্যাথিয়াস বাইনেস

Pkg ইনস্টলারে বাইনারি এখনও আমার জন্য 10.8-এ কাজ করে।
Lri

আমি দেখি. ভবিষ্যতের রেফারেন্সের জন্য, এখানে ডাউনলোডের লিঙ্কটি এখানে রয়েছে: downloads.sourceforge.net/project/duti/duti/duti-1.5.0/…
ম্যাথিয়াস বাইনেস

এটি কি 10.8 এ কাজ করে? আমি খোলা ডিফল্ট অ্যাপ্লিকেশন সেট .aviQuicktime প্লেয়ার ফাইল (খোঁজকারী ব্যবহার করে → তথ্য পানসঙ্গে ... সমস্ত → _Change খুলুন ,) তারপর দৌড়ে duti -s org.videolan.vlc public.avi allভিএলসি পরিবর্তে, তারপর ব্যবহার করতে পুনরায় আরম্ভ LaunchServices - কিন্তু এটা কোন প্রভাব আছে করলো। ( সিস্টেম-ঘোষিত
ইউটিআইয়ের

1
এটি আমার পক্ষে অন্তত কাজ করে। এটির জন্য লঞ্চ পরিষেবাদি ডাটাবেস পুনর্নির্মাণ বা পুনরায় আরম্ভ বা অন্য কিছু প্রয়োজন হবে না। আপনি যদি একবার ~/Library/Preferences/com.apple.LaunchServices.plistখেয়াল করেন , ডুটি বেশিরভাগ ফাইলের নাম এক্সটেনশানগুলিকে ইউটিআইতে স্বয়ংক্রিয়ভাবে রূপান্তর করে, তাই আপনি সাধারণত এর .aviপরিবর্তে প্রকারগুলি নির্দিষ্ট করতে পারেন public.avi। কিছু ফাইল নাম এক্সটেনশনের ইউটিআই ইনস্টল করা অ্যাপ্লিকেশনগুলির উপর নির্ভর করে।
Lri

12

লঞ্চ পরিষেবাগুলি ডিফল্ট ফাইল সংঘের জন্য দায়ী।

ধরা যাক আমি সাব্লাইম টেক্সট 2 এ খুলতে সমস্ত পাঠ্য ফাইলগুলি পরিবর্তন করতে চেয়েছিলাম।

প্রথমে আমার সাব্লাইম টেক্সট 2 এর জন্য কেএমডিআইটিএমসিএফবান্ডিলআইডিটিফায়ার দরকার I আমি এই তথ্যগুলি পেতে এমডিএল ব্যবহার করতে পারি :

> mdls /Applications/Sublime\ Text\ 2.app 
_kTimeMachineIsCreationMarker  = 1
_kTimeMachineNewestSnapshot    = 4001-01-01 00:00:00 +0000
_kTimeMachineOldestSnapshot    = 2012-02-22 03:49:19 +0000
kMDItemCFBundleIdentifier      = "com.sublimetext.2"
....snip....

আমি পাঠ্য ফাইলগুলির জন্য এমডিএল দ্বারা পরীক্ষা করে এটির জন্য সামগ্রীর ধরণের মানটি খুঁজে পেতে পারি :

> mdls test.txt 
kMDItemContentCreationDate     = 2012-03-25 04:18:50 +0000
kMDItemContentModificationDate = 2012-03-25 04:18:50 +0000
kMDItemContentType             = "public.plain-text"
kMDItemContentTypeTree         = (
    "public.plain-text",
    "public.text",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemDateAdded               = 2012-03-25 04:18:50 +0000
kMDItemDisplayName             = "test.txt"
kMDItemFSContentChangeDate     = 2012-03-25 04:18:50 +0000
kMDItemFSCreationDate          = 2012-03-25 04:18:50 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = 0
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = 0
kMDItemFSLabel                 = 0
kMDItemFSName                  = "test.txt"
kMDItemFSNodeCount             = 975
kMDItemFSOwnerGroupID          = 20
kMDItemFSOwnerUserID           = 501
kMDItemFSSize                  = 975
kMDItemFSTypeCode              = ""
kMDItemKind                    = "Plain Text"
kMDItemLogicalSize             = 975
kMDItemPhysicalSize            = 4096

এই ক্ষেত্রে আমি সমস্ত public.plain-textধরণের জন্য ডিফল্ট অ্যাপ্লিকেশন পরিবর্তন করব ।

এটি করতে আমি টাইপ করুন:

defaults write com.apple.LaunchServices LSHandlers -array-add '{ LSHandlerContentType = \"public.plain-text\"; LSHandlerRoleAll = \"com.sublimetext.2\"; }'

আমি যদি পরিবর্তনগুলি কার্যকর করতে চাই তবে আমাকে এ জাতীয় পরিষেবা চালু করতে হবে:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

এবং creditণ দেওয়ার জন্য যেখানে creditণ দেওয়ার জন্য, আমি এই স্ট্যাকওভারফ্লো ডটকমের প্রশ্ন এবং উত্তর থেকে এই পদ্ধতির বিষয়ে জানতে পেরেছি: /programming/9172226/how-to-set-default-application-for-specific-file -types-ইন-ম্যাক-OS-X


0

সুপার ইউজারের এই পোস্টে কিছু সহায়ক তথ্য রয়েছে। লঞ্চ সার্ভিসগুলি সম্পর্কে আরও জানতে, এটির উপরে অ্যাপলের বিকাশকারী ডকুমেন্টেশনের লিঙ্ক' s LSSetDefaultRoleHandlerForContentType (পৃষ্ঠা 48) শিরোনামে বিভাগে যান ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.