OS X संसाधन कांटे नियमित फ़ाइलों से जुड़ी डेटा की वैकल्पिक धाराएँ हैं। वे फ़ाइल के कस्टम आइकन, रंगीन लेबल, कीवर्ड या उपयोगकर्ता द्वारा या किसी अन्य मेटाडेटा सेट को शामिल कर सकते हैं।
वे मूल रूप से ओएस एक्स के एचएफएस + फाइलसिस्टम द्वारा समर्थित हैं, लेकिन जब भी ओएस एक्स किसी अन्य फाइल सिस्टम को मापता है, चाहे स्थानीय (एफएटी 32) या रिमोट (एनएफएस, एसएमबी) उन्हें तथाकथित "डॉटबार" फाइलों में संग्रहीत किया जाता है: नियमित फाइल के लिए संसाधन कांटा name.ext
है। एक और नियमित लेकिन छुपी हुई फ़ाइल में संग्रहीत ._name.ext
। (वे .DS_Store
फ़ाइलों के साथ भ्रमित होने के लिए नहीं हैं , जो एक निर्देशिका के दृश्य सेटिंग्स को संग्रहीत करते हैं, जैसे कि आइकन बनाम स्तंभ दृश्य, या इसकी विंडो की स्थिति।)
डॉटबार ._
फ़ाइलों के साथ समस्या यह है कि वे वास्तविक नियमित फ़ाइलें हैं, लक्ष्य फ़ाइल सिस्टम में, मूल फ़ाइल के समान एक्सटेंशन के साथ, इसलिए कई तरीकों से कहर बरपा रहा है। उदाहरण के लिए, चींटी और मावेन ._MyClass.java
संकलन के लिए एक और जावा फ़ाइल के रूप में देखेंगे ।
मैं देखता हूं कि OS X को SMB नाम की धाराओं में संसाधन कांटे स्टोर करने के लिए कॉन्फ़िगर किया जा सकता है और Samba को POSIX विस्तारित विशेषताओं में स्ट्रीम नाम से स्टोर करने के लिए कॉन्फ़िगर किया जा सकता है या, वैकल्पिक रूप से, डिपो डायरेक्टरी में कहीं और ।
दोनों समाधान लक्ष्य फ़ाइल सिस्टम को प्रदूषित करने वाली डॉटबार फ़ाइलों की समस्या को हल करेंगे, लेकिन मुझे काम करने के लिए नहीं मिल सकता है।
Xattr
पहले मैंने xattr के साथ प्रयास किया:
vfs objects = streams_xattr
kernel oplocks = no
बाद वाला विकल्प इस बग के कारण है । मैंने ओएस एक्स को इसे साझा करने से पहले, शेयर के रूट में ऐसा करके, इसका उपयोग करने के लिए कहा था:
touch .com.apple.smb.streams.on
लेकिन जब मैंने फाइंडर के साथ एक फाइल को कॉपी करने की कोशिश की, तो मुझे यह त्रुटि मिली:
खोजक ऑपरेशन को पूरा नहीं कर सकता क्योंकि "hello.java" में कुछ डेटा को पढ़ा या लिखा नहीं जा सकता है।
(त्रुटि कोड -36)
डिपो
फिर मैंने डिपो से कोशिश की:
vfs objects = streams_depot
.com.apple.smb.streams.on
शेयर की जड़ में जा रहा है। फाइंडर के साथ उसी फाइल को कॉपी करने की कोशिश की जा रही है, मुझे एक और त्रुटि मिली:
ऑपरेशन पूरा नहीं हो सकता है क्योंकि एक अप्रत्याशित त्रुटि हुई
(त्रुटि कोड -50)
मैं ओएस एक्स को इन दोनों विकल्पों में से किसी एक के साथ कैसे काम कर सकता हूं? मेरा उद्देश्य उन गंदे लोगों ._
को साझा निर्देशिकाओं से बाहर निकालना है।
मैंने केवल dotbar फ़ाइलों को वीटो करने की कोशिश की:
veto files = /._*/
delete veto files = yes
लेकिन इसके कारण कुछ एप्लिकेशन विफल हो जाते हैं, उदाहरण के लिए मर्क्यूरियल जब एक माउंटेड एसएमबी शेयर पर ओएस एक्स से चलाया जाता है ।
मैं क्लाइंट के रूप में OS X 10.9.5 का उपयोग कर रहा हूं; सर्वर के रूप में डेबियन व्हीजी से सांबा 3.6.6।
संपादित करें: यहां मेरा विन्यास अनुरोध के अनुसार है:
[global]
security = user
invalid users = root
workgroup = COMPANY_NAME
encrypt passwords = true
panic action = /usr/share/samba/panic-action %d
syslog = yes
syslog only = yes
# PERFORMANCE TUNING
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE
read raw = true
write raw = true
use sendfile = true
min receivefile size = 16384
aio read size = 16384
aio write size = 16384
max xmit = 131072
getwd cache = true
# DEFAULT OPTIONS FOR ALL SHARES
writeable = true
force group = company_group
create mask = 664
security mask = 664
force create mode = 664
force security mode = 664
directory mask = 2775
directory security mask = 2775
force directory mode = 2775
force directory security mode = 2775
# solve problem where OS X clients remove mode 0100
map archive = no
[homes]
browseable = no
unix extensions
निर्देश में बदलने की कोशिश की है कि क्या[global]
आपका मामला हल होता है? क्या आपtestparm
कमांड से आउटपुट के साथ अपने प्रश्न को अपडेट कर सकते हैं ?