2011-12-16 11 views
15

पर कस्टम मेटा डेटा फ़ील्ड जोड़ें, मैं किसी भी फ़ाइल के लिए कस्टम मेटाडेटा विशेषता सेट (और प्राप्त) करने में सक्षम होना चाहता हूं।मैक ओएस एक्स: किसी भी फ़ाइल

ऐसा करने का सबसे अच्छा तरीका क्या है?

धन्यवाद

+0

आप स्पॉटलाइट को इसके साथ कैसे बातचीत करना चाहते हैं? – Thilo

उत्तर

10

OpenMeta ढांचा विस्तारित विशेषताओं का उपयोग करके ओएस एक्स फ़ाइलों में मेटाडेटा जोड़ने के लिए एक वास्तविक तथ्य वाला तृतीय पक्ष मानक है। इसका उपयोग कई तृतीय-पक्ष अनुप्रयोगों द्वारा किया जाता है।

+0

+1 हालांकि, एक साइड नोट के रूप में, ऐसा लगता है कि [कम से कम एक एप्लिकेशन जो पहले ओपनमैटा (मैवरिक्स पर) समर्थित था, अब उन फ़ाइलों को नहीं ढूंढता जो ओपनमैटा टैग का उपयोग करते हैं] (http://apple.stackexchange.com/questions/ 24,494/सूची सभी-openmeta-टैग और जुड़े-फ़ाइलें # comment236164_24514)। –

2

राइट क्लिक करें और जानकारी के लिए, या cmd + मैं जब फ़ाइल खोजक एक जानकारी फलक खुलेगा में चुना गया है और आप शीर्ष कि स्पॉटलाइट में संदर्भित किया जाएगा पर डेटा जोड़ सकते हैं। स्पॉटलाइट टिप्पणियां कहा जाता है। आप इसे निर्देशिकाओं के साथ भी कर सकते हैं। मुझे यकीन नहीं है कि यह सबसे अच्छा तरीका है, लेकिन यह एकमात्र तरीका है जिसे मैं करने के बारे में जानता हूं।

+0

इस प्रोग्रामेटिक रूप से भी करने के लिए एक उपकरण होना चाहिए। – Thilo

+0

मुझे लगता है कि आप इसे सेबस्क्रिप्ट और ऑटोमेटर से कर पाएंगे। ऑटोमेटर पर एक त्वरित नज़र डालें और फ़ोल्डर और फ़ाइलों के खिलाफ प्रीबिल्ट क्रियाओं का एक भार है, इसलिए मान लें कि यह काफी सक्षम है – PurplePilot

7

यह विस्तारित विशेषताओं के लिए नौकरी की तरह लगता है। आप xattr, और getxattr और setxattr वाले प्रोग्राम से कमांड लाइन से उन्हें प्राप्त और सेट कर सकते हैं।

हालांकि, विस्तारित विशेषताओं (कम से कम आम तौर पर) स्पॉटलाइट द्वारा अनुक्रमित नहीं हैं। मुझे इसका एकमात्र अपवाद "com.apple.metadata: kMDItemFinderComment" विशेषता है, जिसमें वास्तविक अनुक्रमिक टिप्पणी के साथ बाइनरी-प्रारूप प्लिस्ट होना चाहिए (@ पर्पलपिलोट का उत्तर देखें)। This page दावा स्पॉटलाइट "com.apple.metadata:" द्वारा उपसर्ग किए गए अन्य xattrs को इंडेक्स करेगा, लेकिन मुझे इसे काम करने के लिए नहीं मिला है।

+0

आपके उत्तर के लिए धन्यवाद। क्या एक विशिष्ट विशेषता वाले सभी फाइलों को प्राप्त करने का कोई तरीका है? –

+0

यदि आप xattr प्रविष्टियों को अनुक्रमणित करने के लिए स्पॉटलाइट प्राप्त कर सकते हैं, तो आप इसे किसी विशेष xattr वाली फ़ाइलों को देखने के लिए उपयोग करने में सक्षम होना चाहिए। यदि नहीं, तो मुझे लगता है कि आपको संपूर्ण फाइल सिस्टम चलना होगा, और मेटाडेटा के लिए प्रत्येक फ़ाइल को जांचने के लिए getxattr का उपयोग करना होगा। –

4

आप प्रोग्राम एक फ़ाइल की "खोजक टिप्पणी" सेट करना चाहते हैं (देखें @ PurplePilot का जवाब), इस प्रयास करें:

1) अपनी टिप्पणी के साथ एक नियमित एक्सएमएल plist फ़ाइल बनाएँ:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<string>My Custom Comment</string> 
</plist> 

2) स्वीकार कर लिया बाइनरी फ़ॉर्मेट में plist कन्वर्ट:

plutil -convert binary1 my_custom_comment.plist 

3) xattr का उपयोग करना, kMDItemFinderComment मेटाडाटा सेट:

xattr -wx "com.apple.metadata:kMDItemFinderComment" "`xxd -ps my_custom_comment.plist`" MyFile 

आप xattr -l MyFile साथ देख सकते हैं कि टिप्पणियों वहाँ और सही द्विपदीय प्रारूप में हैं, लेकिन किसी कारण खोजक के लिए यह (कम से कम मेरे लिए) टिप्पणियाँ कॉलम में प्रदर्शित नहीं करता है।

mdfind "My Custom Comment" के साथ स्पॉटलाइट डेटाबेस के विरुद्ध खोज इस टिप्पणी के साथ सभी फाइलें वापस कर देगा।

13

कस्टम विशेषता नाम मेरे लिए काम:

$ xattr -w com.apple.metadata:MyAttribute gfdylvyieo a.txt 
$ mdls -n MyAttribute a.txt 
MyAttribute = "gfdylvyieo" 
$ mdfind gfdylvyieo 
/private/tmp/a.txt 
$ mdfind 'MyAttribute=*' 
/private/tmp/a.txt 

xattr -wx की जरूरत नहीं है, तो मूल्य सादा पाठ है:

xattr -w com.apple.metadata:kMDItemFinderComment aa file.txt 

जब आप खोजक से एक चर्चित टिप्पणी जोड़ने के लिए, यह दोनों के रूप में संग्रहीत किया जाता है एक विस्तारित विशेषता और एक .DS_Store फ़ाइल में। यदि आप केवल एक विस्तारित विशेषता जोड़ते हैं, तो स्पॉटलाइट टिप्पणी फ़ील्ड फ़ाइंडर में खाली दिखाई देती है, लेकिन टिप्पणी मेटाडाटा अभी भी स्पॉटलाइट द्वारा अनुक्रमित है।