غير قادر على الحصول على حجم الدليل بواسطة ls

StackOverflow https://stackoverflow.com/questions/679567

  •  21-08-2019
  •  | 
  •  

سؤال

أقوم بتشغيل الأمر دون جدوى للحصول على حجم الدلائل (الملفات الموجودة بداخله تنتمي إلى حجم الدليل)

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;

سيحصل هذا على محتوى الدليل الكامل لجميع الدلائل الموجودة في الدليل الحالي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top