मेरे Ubuntu सिस्टम पर, ext4 का उपयोग करके, du -b fileएक वास्तविक फ़ाइल के du -b dirबाइट्स में आकार देता है , और फ़ाइल के बाइट्स में आकार देता है (ओं) + निर्देशिका ओवरहेड, ओवरहेड है, मेरे मामले में, 4096 बाइट्स के गुणक ।।
फाइलों की संख्या बढ़ने के साथ यह ओवरहेड बढ़ता है।
नोट: यदि फ़ाइलें हटा दी जाती हैं, तो भी निर्देशिका ओवरहेड उच्च स्तर पर बनी रहती है, इससे पहले कि यह चरण हटाए गए थे ..
मैंने रिबूट करने की कोशिश नहीं की है, यह देखने के लिए कि क्या यह पलटता है, लेकिन या तो मामले में, इसका मतलब यह है कि निर्देशिका का आकार ऐतिहासिक परिस्थितियों के आधार पर भिन्न होता है।
कुल फ़ाइल आकार के सटीक मान के लिए प्रत्येक फ़ाइल आकार का मिलान सबसे अच्छा विकल्प हो सकता है ।
निम्न स्क्रिप्ट सभी फ़ाइल आकार (बाइट्स में) का योग करती है।
ओएस एक्स के लिए, यदि आपके पास -b'डु' के लिए ऑप्टोन नहीं है, तो आप statइसके बजाय उपयोग कर सकते हैं । (यदि आपके पास है:) ... टिप्पणी लाइन उबंटू के statविकल्प को दिखाती है du -b;
unset total
while IFS= read -r -d $'\0' rf; do
# (( total += $(stat "$rf" | sed -nre 's/^ Size: ([0-9]+).*/\1/p') ))
(( total += $(du -b "$rf" | cut -f 1) ))
done < <(find . -type f -name '*' -print0)
echo $total