मैक टार को लगाना बंद करो। * * टार अभिलेखागार में फ़ाइलनाम [डुप्लिकेट]


46

संभव डुप्लिकेट:
मुझे OS X पर मेरे टारबॉल में ._foo जैसी फाइलें क्यों मिलती हैं?

मैं एक मैक पर ऑटोकॉन्फ़ स्क्रिप्ट बनाता हूं। जब टार चलता है, तो यह इन सभी को संग्रहीत करता है। संग्रह में फ़ोबार नाम:

libewf-20110312/borlandc/builder5/ewfacquire/._ewfacquire.bpf
libewf-20110312/borlandc/builder5/ewfacquire/ewfacquire.bpf
libewf-20110312/borlandc/builder5/ewfacquire/._ewfacquire.bpr
libewf-20110312/borlandc/builder5/ewfacquire/ewfacquire.bpr

अब क्या चल रहा है Apple के HFS फाइलसिस्टम ने ._ फ़ॉबर नामों में फ़ाइल गुण डाल रहे हैं ताकि उन्हें दूसरे मैक सिस्टम पर बहाल किया जा सके। लेकिन मैं उन्हें नहीं चाहता --- वे सिर्फ मेरे लिए कबाड़ हैं। क्या उन्हें दबाने का कोई तरीका है?


Unix.stackexchange.com/questions/9665/… का डुप्लीकेट ।
1923

2
@geekosaur यूनिक्स पर उपयोगकर्ता। वह गलत जवाब दिया और स्वीकार कर लिया।
डैनियल बेक

अभिलेखागार (जैसे ) से फ़ाइलों को ठीक से निकालने._*.__init__.py के बारे में एक संबंधित प्रश्न एसयू प्रश्न भी है जो उसी समाधान का उपयोग करता है।
क्रिस जॉन्सन

जवाबों:


69

एक अन्य प्रश्न के उत्तर के अनुसार , आप सिस्टम सदस्यों द्वारा आपूर्ति किए गए कई कार्यक्रमों ( टार सहित ) को ._*संग्रह के सदस्यों को विशेष अर्थ देने से रोकने के लिए अनिर्दिष्ट (?) पर्यावरण चर COPYFILE_DISABLE सेट कर सकते हैं। विशेष रूप से, यह उन्हें रोक देगा:

  • ._*संग्रह सदस्यों में विस्तारित विशेषता डेटा (संसाधन फ़ॉर्क्स सहित) संग्रहीत
    करना (यानी मैक OS X पर बनाए गए "प्रदूषित" अभिलेखागार नहीं है, लेकिन अन्य प्रणालियों पर उपयोग के लिए है), और

  • जैसे नामित संग्रह सदस्यों से विस्तारित विशेषताओं या संसाधनों को निकालने का प्रयास ._*
    (जैसे ._*अन्य प्रणालियों से अभिलेखागार में संग्रह के सदस्यों का गलत अर्थ न निकालें )।

पर्यावरण चर के लिए आपके द्वारा उपयोग किया जाने वाला मान महत्वपूर्ण नहीं है (यह खाली स्ट्रिंग भी हो सकता है)। मान पसंद करते हैं 0, और falseसुविधा को फिर से साझा नहीं करेंगे। केवल एक चीज जो मायने रखती है वह यह है कि चर सेट किया गया है (आपको इस सुविधा को फिर से उपयोग करने के लिए "परेशान" करना होगा)।

आप अतिरिक्त वातावरण चर के साथ उपसर्ग कमांड के लिए बॉर्न-शैली के गोले ( , ksh , bash , zsh , आदि) की क्षमता का लाभ उठाकर व्यक्तिगत चर पर इस चर का उपयोग कर सकते हैं ।

COPYFILE_DISABLE=1 tar cf new.tar …

यदि आप समस्या में अधिक से अधिक बार भागते हैं, तो आप इस शेल को अपने शेल के इनिशियलाइज़ेशन फ़ाइलों में से एक में सेट और एक्सपोर्ट करना चाह सकते हैं।

# turn off special handling of ._* files in tar, etc.
COPYFILE_DISABLE=1; export COPYFILE_DISABLE

जब आपको जरूरत होती है, तब आप व्यक्तिगत कमांड के लिए वैरिएबल को अनसेट कर सकते हैं।

(unset COPYFILE_DISABLE; tar cf somefile.tar …)

इस Mac OS X 10.6 सिस्टम पर, सभी कमांड COPYFILE_DISABLE के बारे में जानने लगते हैं:

  • /usr/bin/tar(एक प्रतीकात्मक लिंक bsdtar)
  • /usr/bin/bsdtar
  • /usr/bin/gnutar
  • /bin/pax

COPYFILE_DISABLE की उत्पत्ति Mac OS X 10.5 में हुई थी। यदि आपको 10.4 का समर्थन करने की आवश्यकता है, तो उसके पास COPY_EXTENDED_ATTRIBUTES_DISABLE है जो उसी तरह से काम करता है।


वाह। मुझे इसकी ही खोज थी। धन्यवाद। मेरी ऑटोकॉन्फ़ फाइलें बहुत साफ होंगी।
vy32

0

एक विशेषज्ञ नहीं, लेकिन एक छोटे से googling ने यह पाया: http://www.ofzenandcomputing.com/zanswers/3422

और यह: http://hintsforums.macworld.com/archive/index.php/t-28703.html

दूसरा कमांड ऐसा लगता है कि इसे स्क्रिप्ट में शामिल किया जा सकता है ... आप संसाधन फोर्क फ़ाइलों के निर्माण को रोकने में सक्षम नहीं हो सकते हैं, लेकिन आप बाद में स्वचालित रूप से इन्हें हटा सकते हैं।

संपादित करें: मुझे यह उल्लेख करना चाहिए कि इसके बुरे परिणाम हो सकते हैं, अपने जोखिम पर उपयोग करें।


1
स्क्रिप्ट स्थानीय डिस्क पर फ़ाइलों से संसाधन कांटे को हटा देती है। वे आम तौर पर एक उद्देश्य (जैसे एक निश्चित फ़ाइल से जुड़े एप्लिकेशन को बदलना) की सेवा करते हैं, इसलिए इसे एक बड़ी चेतावनी के साथ आना चाहिए।
डैनियल बेक

स्क्रिप्ट मेरी मदद नहीं करती है। यह डिस्क से फाइलों को हटाता है, टार आर्काइव से नहीं। पता चलता है कि मेरे पास मेरी डिस्क पर संसाधन फ़ाइलें नहीं हैं। लेकिन उन्हें आर्काइव में रखा जा रहा है। और ज़िप फ़ाइलों के विपरीत, आप बस एक टार संग्रह से फ़ाइलों को नहीं निकाल सकते।
v3232

(bah, टाइमआउट्स), वास्तव में, यदि आप बहुत अधिक उपयोग कर रहे हैं, tarलेकिन बीएसडी- libarchiveआधारित एक (इसमें मैक ओएस एक्स शामिल है), लेकिन अच्छी तरह से विश्वसनीय नहीं हो सकता है; GNU टार स्थापित करना अक्सर एक अच्छा विचार होता है। (हालांकि, यह दर्दनाक है। मुझे लगता है कि आपको उन सभी को सूचीबद्ध करने और फिर कमांड लाइन पर उन नामों को पास करने की आवश्यकता है।) इसके अलावा, संसाधन कांटे तकनीकी रूप से डिस्क पर हैं, लेकिन एचएफएस + पर वे विस्तारित विशेषताओं में संग्रहीत हैं; ._फ़ाइलों स्थानों है कि विस्तारित गुण का समर्थन नहीं करते में संसाधन कांटे भंडारण के ओएस एक्स की तरह कर रहे हैं।
गीकॉर्स

0

आप अपनी खुद की संकलन कोशिश कर सकते हैं tar, या (Homebrew यह नहीं है) यदि उपलब्ध हो macports या फिंक से यह स्थापित करने। कुछ "भाग्य" के साथ यह ओएस एक्स मेटाडेटा से अनभिज्ञ होना चाहिए और उन फ़ाइलों को बनाना छोड़ देना चाहिए।


मैं downvote के लिए एक स्पष्टीकरण की सराहना करता हूँ। धन्यवाद।
डैनियल बेक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.