duओएस एक्स में प्रयुक्त बीएसडी संस्करण 512-बाइट ब्लॉकों के साथ आकार की रिपोर्ट करता है - आकार अनिवार्य रूप से अगले 512-बाइट मान तक गोल होते हैं। यह आपको डिस्क पर जगह बताता है, जो डेटा की मात्रा से बड़ा है। यदि आपके पास बहुत सारी छोटी फाइलें हैं, तो अंतर बड़ा हो सकता है।
यहाँ एक उदाहरण है।
यह नियमित के साथ मूल्य है du। यह 512-बाइट ब्लॉक में है:
$ du -s
248 .
-hअधिक पठनीय संख्या में झंडा परिणाम, किलोबाइट में। जैसी कि उम्मीद थी, यह 512-बाइट ब्लॉक की आधी संख्या है:
$ du -hs
124K .
अंत में, आप उपयोग कर सकते हैं findऔर awkआप फ़ाइलों में वास्तविक बाइट्स की राशि देने के लिए। यह धीमा है, लेकिन यह काम करता है:
$ find . -type f -exec ls -l {} \; | awk '{sum += $5} END {print sum}'
60527
यह मान फाइंडर के गेट इन्फो विंडो द्वारा बताई गई संख्या से बिल्कुल मेल खाता है। (फ़ाइलों के इस सेट में कोई अजीब कांटे या xattrs नहीं हैं।) यह उनके द्वारा बताए गए मूल्य से काफी छोटा है du।
यहां बताया गया है कि यह कैसे काम करता है: इसे सभी फाइलों की एक सूची मिलती है, और उन्हें पास किया जाता है ls -l; तब awkबाइट्स को गिनने के लिए उपयोग किया जाता है। -type fताकि केवल फ़ाइलें (और नहीं निर्देशिका) को भेजा झंडा है ls। कि झंडा के बिना, यह भी निर्देशिका नाम पर भेज देंगे lsनिर्देशिका में एक आइटम के रूप में एक बार एक व्यक्ति फ़ाइल के रूप में, और एक बार:, और प्रत्येक फ़ाइल दो बार सूचीबद्ध किया जाएगा।
GNU संस्करण duब्लॉक के बजाय वास्तविक बाइट्स में मान दे सकता है। यह दुर्भाग्यपूर्ण है कि बीएसडी संस्करण duउतना लचीला नहीं है।
-k1K-byte के ब्लॉक आकार का उपयोग करने के लिए विकल्प का उपयोग कर सकते हैं