मैक ओएस एक्स निर्देशिका आकार सही ढंग से रिपोर्टिंग नहीं?


17

खोजक में, मैंने देखा है कि अगर मैं कुछ .app फ़ाइलों (एप्लिकेशन फ़ोल्डर में) को डुप्लिकेट करता हूं, तो खोजकर्ता दिखाएगा कि डुप्लिकेट .app फ़ाइल मूल के समान आकार नहीं है। यह फ़ाइल आकार विसंगति उन सभी .app फ़ाइलों के लिए नहीं होती है जिन्हें मैं डुप्लिकेट करता हूं, लेकिन यह बड़ी .app फ़ाइल की तरह लगता है, अधिक संभावना है कि डुप्लिकेट मूल के समान आकार नहीं दिखाएगा। यहाँ कुछ उदाहरण हैं:

GarageBand.app - 381.7 MB
GarageBand copy.app - 373.2 MB

iMovie.app - 695.3 MB
iMovie copy.app - 635.4 MB

Install Xcode.app - 1.81 GB
Install Xcode copy.app - 1.57 GB

अब मैं एमएसीएस के लिए नया हूं, और जब मैंने इस फ़ाइल आकार की विसंगति की समस्या पर ध्यान दिया, तो मुझे पता चला कि .app फाइलें वास्तव में फाइलें नहीं हैं - वे वास्तव में निर्देशिकाएं हैं, लेकिन फाइंडर उन्हें दिखाता है जैसे कि वे फाइलें हैं। इसलिए मुझे लगा कि शायद दोहराव प्रक्रिया ने मूल .app निर्देशिका की सभी सामग्रियों की प्रतिलिपि नहीं बनाई है और जिसने "फ़ाइल आकार" में अंतर को समझाया है। लेकिन फिर मैंने DeltaWalker को डाउनलोड और इंस्टॉल किया, जो कि एक फाइल / फोल्डर डिफरेंट टूल है, और DeltaWalker ने कहा कि डुप्लिकेट .app निर्देशिकाएं बिल्कुल .app निर्देशिकाओं जैसी ही थीं। तो दोहराव प्रक्रिया पूरी तरह से काम करती है, और इसलिए यह फाइंडर रिपोर्टिंग फ़ाइल आकार के साथ एक समस्या लगती है।

मैंने "डु" कमांड का उपयोग करके टर्मिनल में निर्देशिकाओं के आकार की जाँच की, और यह भी मूल और डुप्लिकेट निर्देशिकाओं के बीच के आकार में विसंगतियों को दर्शाता है:

du -k /Applications/GarageBand.app/
212868  /Applications/GarageBand.app/

du -k /Applications/GarageBand\ copy.app/
397880  /Applications/GarageBand copy.app/

du -k /Applications/iMovie.app/
629644  /Applications/iMovie.app/

du -k /Applications/iMovie\ copy.app/
700500  /Applications/iMovie copy.app/

du -k /Applications/Install\ Xcode.app/
1771864 /Applications/Install Xcode.app/

du -k /Applications/Install\ Xcode\ copy.app/
1772228 /Applications/Install Xcode copy.app/

इसके अलावा, यह सिर्फ .app निर्देशिका नहीं है। मैंने अपनी / डेवलपर / लाइब्रेरी निर्देशिका की नकल की, और यहां क्या कहा डु:

du -k /Developer/Library/
320784  /Developer/Library/

du -k /Developer/Library\ copy/
399868  /Developer/Library copy/

तो क्या कोई समझा सकता है कि मैक ओएस एक्स निर्देशिका आकारों की सही रिपोर्ट क्यों नहीं करता है? क्या यह बग (किसी चीज़ के लिए विश्वास करना मुश्किल है), या क्या मुझे कुछ याद आ रहा है (एक नया मैक उपयोगकर्ता होने के नाते)?

(मैं मैक ओएस एक्स लॉयन 10.7.2 चला रहा हूं)


उत्थान के जवाब में अद्यतन करें:

इसके बारे में सबसे अजीब बात यह है कि फाइंडर की कोई निरंतरता नहीं है। मैंने अभी GarageBand.app के 2 डुप्लिकेट बनाए, और फिर एक डुप्लिकेट के 2 डुप्लिकेट बनाए। खोजक हर एक डुप्लिकेट को एक अलग आकार के साथ प्रदर्शित करता है:

GarageBand.app - 381.7 MB
GarageBand copy.app - 357.6 MB (duplicate of GarageBand.app)
GarageBand copy 2.app - 353.9 MB (duplicate of GarageBand.app)
GarageBand copy 3.app - 378.2 MB (duplicate of GarageBand copy 2.app)
GarageBand copy 4.app - 329.1 MB (duplicate of GarageBand copy 2.app)

यह भी ध्यान दें कि "GarageBand copy 3.app" "GarageBand copy 2.app" से बड़ा है, जबकि "GarageBand copy 4.app" "GarageBand copy 2.app" से छोटा है। खोजक में एक बग होना चाहिए।

यहाँ उन सभी के बारे में क्या कहा गया है:

212868  /Applications/GarageBand.app/
397880  /Applications/GarageBand copy.app/
397880  /Applications/GarageBand copy 2.app/
397880  /Applications/GarageBand copy 3.app/
397880  /Applications/GarageBand copy 4.app/

कम से कम यह कहता है कि सभी डुप्लिकेट समान आकार हैं, लेकिन वे मूल के समान आकार नहीं हैं।


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

क्या मेरे जवाब में कुछ भी कमी है? मुझे आभास है कि यह आपके प्रश्न का पूर्ण उत्तर है, लेकिन अभी तक आपकी कोई टिप्पणी नहीं आई है। कृपया क्या आप मुझे बता सकते हैं?
टोनिन

1
मैं देरी के लिए माफी माँगता हूँ। प्रश्न में रुचि खो देने के बाद आपका उत्तर आया। लेकिन आपका जवाब शानदार है - बहुत विस्तृत है और यह वास्तव में मेरे सवाल का पूरी तरह से जवाब देता है। बहुत बहुत धन्यवाद, और मुझे याद रखना होगा कि फाइंडर असम्पीडित आकार प्रदर्शित करता है भले ही फ़ाइल / फ़ोल्डर वास्तव में संकुचित हो।
पचवरफ्लो

इसे पुनः टैग करते हुए, शायद मुझे इसे [कॉपी] टैग करना चाहिए था? - लेकिन किस दूसरे टैग की कीमत पर?
अर्ने स्टेंस्ट्रम

जवाबों:


13

विभिन्न कारणों से अंतर आया: गिनती के विभिन्न तरीके, विभिन्न उपकरण, संपीड़न और एक बग की तरह क्या दिखता है।

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

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

उसके बाद, आपको यह देखना चाहिए कि फाइंडर द्वारा रिपोर्ट किए गए सभी आकार समान हैं।

तो हाँ, यह फाइंडर बग की तरह दिखता है, कम से कम OSX शेर में (यहां 10.7.4 के साथ परीक्षण किया गया, फाइंडर संस्करण 10.7.3)। आप इस धागे को भी देख सकते हैं जो एक ही तरह के व्यवहार की रिपोर्ट करता है।

फिर, आइए duटूल पर विचार करें । सबसे पहले, मैंने सोचा कि जो अंतर हम देखते हैं, उसे कॉपी किए जा रहे आइटमों के तार्किक और भौतिक आकारों के अंतर से समझाया जा सकता है। तार्किक आकार आइटम का वास्तविक आकार है, जिसका अर्थ है कि इसमें शामिल होने वाली हर एक बिट जानकारी। भौतिक आकार डिस्क पर आइटम का आकार है, जहां प्रत्येक जानकारी डिस्क क्षेत्र पर लिखी जाती है।

उदाहरण के लिए एक एकल वर्ण वाली फ़ाइल में 1 बाइट तार्किक आकार होता है, लेकिन 512 बाइट्स या 4096 बाइट्स भौतिक आकार जब वास्तव में डिस्क पर लिखा जाता है। भौतिक आकार आमतौर पर तार्किक आकार से बड़ा होता है (और डिस्क या फ़ाइल सिस्टम के वास्तविक क्षेत्र / ब्लॉक आकार पर निर्भर करता है)। इसे इस अन्य सूत्र में अधिक विवरण में समझाया गया हैविरल फ़ाइलों के मामले में तार्किक आकार बड़ा हो सकता है , लेकिन HFS + ऐसी सुविधा का समर्थन नहीं करता है।

duकेवल भौतिक आकार दिखाता है (और आप इसे बता सकते हैं कि BLOCKSIZE क्या है)। आप देख सकते हैं कि रिपोर्ट किया गया आकार duहमेशा बड़ा होता है (या, असाधारण रूप से, समान) मूल के रूप में। यह फ़ाइल सिस्टम और डिस्क स्थान विखंडन के कारण है। जब आप किसी फ़ाइल की नकल करते हैं (वास्तव में यहां फाइलों का एक गुच्छा, एक एप्लिकेशन के रूप में एक निर्देशिका है) डिस्क पर नए सेक्टर आवंटित किए जा रहे हैं और, जैसे ही विखंडन होता है , उपयोग किए जाने वाले ब्लॉकों की संख्या आमतौर पर मूल आइटम की तुलना में अधिक होती है। कुछ लोग उस फाइल को सुस्त कहते हैं

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

कुछ गणित क्यों कर रहे हो? क्योंकि खोजक फ़ाइल का आकार kB, MB या GB duमें दिखाता है जहाँ उन्हें kiB, MiB या GiB में रिपोर्ट करता है। वे आईईसी बाइनरी उपसर्ग हैं जिनका उपयोग डिजिटल जानकारी की इकाइयों की गणना और प्रदर्शन करने के लिए किया जाना चाहिए।

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

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

antoine@amarante:/Applications$ du -ms iTunes.app/
281 iTunes.app/
antoine@amarante:/Applications$ cp -a iTunes.app/ iTunes-copy.app/
antoine@amarante:/Applications$ ditto iTunes.app/ iTunes-ditto.app
antoine@amarante:/Applications$ ditto --arch x86_64 iTunes.app/ iTunes-64.app
antoine@amarante:/Applications$ du -ms iTunes*
236 iTunes-64.app
289 iTunes-copy.app
281 iTunes-ditto.app
281 iTunes.app

मेरे पूरक पोस्ट पर उनके उत्तर के लिए @DanPritts को धन्यवाद ।


क्या यह दूसरा रास्ता नहीं है? खोजक वास्तविक एसआई उपसर्ग दिखाता है।
डैनियल बेक

फ़ाइलें स्पार्स नहीं करेंगे ( ओएस एक्स के विरल बंडलों / छवियों को नहीं ) भौतिक फ़ाइल आकार की तुलना में अधिक तार्किक है?
डैनियल बेक

हां, आप सही हैं, खोजकर्ता एसआई उपसर्ग और duआईईसी दिखाता है , मैं अपनी पोस्ट को सही करूंगा।
टोनिन

@DanielBeck स्पार्स फाइलें, सिद्धांत रूप में यह हो सकता है, हां, लेकिन OSX एप्लिकेशन में किस तरह की फाइलें विरल फाइलों के रूप में होंगी? विकिपीडिया के अनुसार , HFS + पर विरल फाइलें समर्थित नहीं हैं।
टोनिन

वह पैराग्राफ पढ़ता है जैसे यह आम तौर पर लागू होता है ( डिस्क या फ़ाइल सिस्टम के वास्तविक क्षेत्र / ब्लॉक आकार पर निर्भर करता है ), इसलिए मैं इसका उल्लेख करना चाहता था।
डैनियल बेक

1

यह ओएस एक्स में एक भयानक दोष / बग है। यह देखने का सबसे आसान तरीका है कि एक बड़े एप्लिकेशन बंडल की नकल करें, फिर सामग्री दिखाएं और भीतर से एक बड़ी फ़ाइल को हटा दें। अंतरिक्ष ठीक नहीं होगा। फ़ाइल अभी भी विशाल है। उदाहरण के लिए, यदि आपके पास 3.5GB का एप्लिकेशन बंडल है, तो आप सामग्री दिखाते हैं, फिर उसमें से 3GB निकाल दें, अब आपके पास 500MB के फ़ाइल आकार के साथ एक एप्लिकेशन होना चाहिए। आप नहीं। यह अभी भी 3.5GB होगा।


आकार को पुनर्गणना करने के लिए फ़ोल्डर दृश्य विकल्पों में सभी आकारों की गणना करें का चयन करें। Apple.stackexchange.com/a/227173/156178 देखें
asmaier

0

यह मूल रूप से एक अनुमान है, लेकिन मुझे दो संभावनाएं दिखाई देती हैं:

  1. कुछ डेटा हटा दिए गए हैं, लेकिन मूल में नहीं दिखाए गए हैं, और इसे कॉपी नहीं किया गया है। फिर भी यह कुछ डिस्क उपयोग खोजों में दिखाई देता है, लेकिन अन्य नहीं (अलग-अलग मापदंडों को डु या जो भी ओएस एक्स आंतरिक रूप से उपयोग करते हैं)।
  2. कुछ डेटा मूल स्थान से जुड़े होते हैं, और यह विभिन्न उपकरणों में कथित आकार को प्रभावित करता है।

यदि (1) आपको संभवतः तीसरी प्रति बनाने और प्रतियों की तुलना करने के लिए अलग-अलग परिणाम प्राप्त करने चाहिए।


क्षमा करें, किसी टिप्पणी में सही दिखने के लिए बहु-कोड ब्लॉक नहीं मिल सकता है, इसलिए मैं अपने मूल पोस्ट को संपादित करने का प्रयास करूंगा।
pacoverflow

मैंने डुप्लिकेट को मूल से बड़ा होने की उम्मीद नहीं की होगी: - / यह एक बग रिपोर्ट के योग्य लगता है, लेकिन मैं फाइंडर के आंतरिक कामकाज पर कोई प्रतिक्रिया प्राप्त करने की संभावना को कम करता हूं, क्योंकि यह पतला है। उम्मीद है कि वे इसे देख लेंगे, हालांकि।
योगिनी

0

सबसे पहले, आपको यह पता होना चाहिए कि मैक .app फाइलें वास्तव में निर्देशिकाएँ हैं , विंडोज .exe फ़ाइलों की तरह संकलित बायनेरिज़ नहीं। खोजक सिर्फ * .app नामक फ़ोल्डर के लिए आपसे यह तथ्य छिपाता है।

जैसे (टर्मिनल से)

# cd /Applications/Calculator.app
# ls
Contents/

मुझे पूरा यकीन है कि जो कुछ हो रहा है वह यह है कि खोजक / गेट इन्फो कुछ-बहुत-चालाक चतुर का उपयोग कर रहा है। इसका मतलब यह है कि यह हर एक सबफ़ोल्डर और फ़ाइल को एन्यूमरेट करने और उन सभी आकारों को एक साथ जोड़ने की आवश्यकता नहीं है।

मेरा अनुमान है कि कॉपी पर अनुमान सही है क्योंकि OSX ने हाल ही में कॉपी करते समय उसमें हर फाइल का निरीक्षण किया है, जबकि मूल पर, OSX को ऐसा कभी नहीं करना पड़ा हो सकता है (जैसे कि फैक्ट्री इंस्टॉल के साथ)


-1

एसएसडी पर योसेमाइट स्थापित करने के बाद मैंने इसे एक आंतरिक एचडीडी पर स्थानांतरित करने के बाद अपने होम डायरेक्टरी के साथ यह समस्या थी। 'गेट इन्फो' का उपयोग करते समय इसने केवल 8GB के गलत आकार की सूचना दी, हालांकि इसने खोजक के स्टेटस बार में 240GB का सही आकार दिखाया। मैंने इसे उपयोगकर्ता फ़ोल्डर पर Get Info पर क्लिक करके ठीक किया, जो तब ठीक से परिकलित किया गया था और होम डायरेक्टरी द्वारा रिपोर्ट किए जा रहे गलत आकार को ठीक किया गया था।

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