غير قادر على الحصول على حجم الدليل بواسطة ls
سؤال
أقوم بتشغيل الأمر دون جدوى للحصول على حجم الدلائل (الملفات الموجودة بداخله تنتمي إلى حجم الدليل)
ls -lSrh
أحصل على كيلوبت فقط لحجم الأدلة بينما محتواها أكبر من ذلك.
كيف يمكنك سرد حجم الدلائل بما في ذلك محتواها في العدد حسب ليرة سورية?
المحلول
du -sh directory_name
ls
سوف أعطيك حجم الدليل دخول, ، وليس من محتويات الدليل.بناءً على قراءتي السريعة لـ man ls
لا يبدو أن هناك طريقة للقيام بذلك ls
قم بالتعمق واحسب حجم الدلائل (على الأرجح لأنها ستكون عملية مكلفة).
نصائح أخرى
إذا كنت ترغب في الحصول على حجم الدلائل، يمكنك استخدام
du -sh
du -hs
عظيم حتى يكون لديك دليل كبير.
على سبيل المثال، إذا قمت بتخزين ملفات ذاكرة التخزين المؤقت (على سبيل المثال، مخزن ذاكرة التخزين المؤقت لنظام الملفات لـ Rails) أو الملفات التي تم تحميلها، ... مع مخطط مقسم، مثل "cache/123/456/789/real_files" ولديك الكثير منها، du
يستغرق الأمر إلى الأبد، مما يؤدي في النهاية إلى حظر جميع عمليات الإدخال والإخراج.
ليس لدي حل أفضل، ولكن يجب أخذ ذلك في الاعتبار قبل تشغيل هذا على خادم الإنتاج أثناء وقت الذروة.
بناءً على إجابة Sean Bright، يمكنك القيام بما يلي (في BASH)
for each in $(echo */ | sed "s/ /\n/g" | sed "s/\///g"); do du -hs "$each"; done;
سيحصل هذا على محتوى الدليل الكامل لجميع الدلائل الموجودة في الدليل الحالي.