2012-01-07 4 views
19

मैं अपना खुद का टैर संग्रह लिख रहा हूं। सभी मेरे ऐप के अंदर ठीक काम करते हैं (यहां तक ​​कि अन्य टूल्स के साथ उत्पन्न टैर्स भी पढ़ते हैं) हालांकि मुझे तीसरे पक्ष टैर फ़ाइल पाठकों के साथ काम करने के लिए मेरी टैर फाइलें नहीं मिल सकती हैं। इसलिए मैंने कमांड लाइन पर एक टैर फ़ाइल बनाने की कोशिश की, मेरे कोड के साथ एक और बाइनरी दो की तुलना की।मैक ओएस एक्स में टैर कमांड "छुपी हुई" फाइलें जोड़ रहा है, क्यों?

लेकिन वहाँ एक मुद्दा हो रहा है:

मैं एक textfile test.txt कहा जाता है जो मैं अपने टार में जोड़ने के लिए चाहते हैं, तो मैं टर्मिनल में निम्नलिखित कमांड चलाएँ:

tar -c -f x.tar Test.txt 

जब यह कर:

tar -tf x.tar 

मैं निम्नलिखित सूची प्राप्त:

./._Test.txt 
Test.txt 

यह मैक ओएस एक्स शेर पर टर्मिनल में है।

./._Test.txt फ़ाइल कहां से आती है? मुझे यह नहीं दिख रहा है कि ls -a

टैर सामग्री का निरीक्षण करने पर यह कुछ बाइनरी डेटा प्रतीत होता है, लेकिन मुझे नहीं पता कि यह कहां से आता है।

उत्तर

4

यह फ़ाइल के संसाधन कांटा/विस्तारित विशेषताओं का प्रतिनिधित्व है।

ls [email protected] Test.txt और xattr -l Test.txt आज़माएं ताकि यह देखने के लिए कि ओएसएक्स फ़ाइल पर कितनी अतिरिक्त चीजें हैं।

0

ओएसएक्स फ़ाइल सिस्टम फोर्क स्टोर करता है जब लक्ष्य फ़ाइल सिस्टम उनका समर्थन नहीं करता है।

देखें: http://en.wikipedia.org/wiki/Fork_(file_system)

30

आप अपने bashrc फ़ाइल में निम्न जोड़ सकते हैं -

export COPYFILE_DISABLE=true 

या, आप निष्कर्षण समय

tar -xzpvf x.tar --exclude="._*" 
+4

निर्यात कमांड का उपयोग करते हुए पैरामीटर को बाहर नहीं किया जाता है। –

+1

'- बहिष्कार 'मेरे लिए काम किया (किसी भी तरह से ऐसी स्थिति में आने के बाद जहां ओएस एक्स पर भीतरी नहीं है, सब कुछ' ._'-फाइलों के साथ प्रदूषित कर रहा था)। –

17

पर अपने tar आदेश के लिए इस विकल्प को जोड़ सकते हैं Bsdtar 3.0.3 - libarchive 3.0.3 (और शायद पहले) के रूप में bsdtar कमांड के लिए एक नया (मैक ओएस एक्स विशिष्ट) विकल्प है ._ फ़ाइलों के निर्माण को दबाने के लिए।

+4

'bsdtar 2.8.3 के साथ- '10.7.5'' के libarchive 2.8.3'' --disable-copyfile' दस्तावेज नहीं है लेकिन फिर भी उपलब्ध है। –