سؤال كيف يمكنني تحديد الحجم الإجمالي للدليل (مجلد) من سطر الأوامر؟


هل هناك أمر بسيط لعرض الحجم الكلي الكلي (استخدام القرص) لجميع الملفات في دليل (مجلد)؟

لقد جربت ذلك ، وهم لا يفعلون ما أريد:

  • ls -l، والتي تعرض فقط حجم الملفات الفردية في الدليل ، ولا
  • df -h، والذي يعرض فقط المساحة الحرة والمستعملة على أقراص بلدي.

685
2017-08-05 18:20


الأصل


ذات صلة: كيفية سرد أحجام الملفات المتكررة من الملفات والدلائل في الدليل؟ - Peter Mortensen
التكرار عبر الموقع: كيف يمكنني الحصول على حجم دليل على سطر الأوامر؟ - Peter Mortensen


الأجوبة:


الامر du "يلخص استخدام القرص لكل ملف ، بشكل متعاقب للأدلة ،" على سبيل المثال ،

du -hs /path/to/directory
  • -h هو الحصول على الأرقام "مقروءة الإنسان" ، على سبيل المثال احصل على 140M بدلا من 143260 (الحجم في KBytes)
  • -s هو للملخص (وإلا فلن تحصل على حجم المجلد فقط ولكن أيضًا على كل شيء في المجلد بشكل منفصل)

كما كنت تستخدم -h يمكنك فرز القيم البشرية التي يمكن قراءتها باستخدام

du -sh | sort -h

ال -h علم على sort سيأخذ بعين الاعتبار قيم حجم "Human Readable".


إذا كنت ترغب في تجنب بشكل متكرر سرد كافة الملفات والدلائل ، يمكنك توفير --max-depth المعلمة للحد من عدد العناصر المعروضة. اكثر شيوعا، --max-depth=1

du -sh --max-depth=1 /path/to/directory

1090
2017-08-05 18:27



فيما يتعلق بالتمهيد الإضافي. :) - myusuf3
أنا أستعمل du -sh أو DOOSH كطريقة لتذكرها (ملاحظة: الأمر هو نفسه ، فقط تنظيم إشارات سطر الأوامر لأغراض الذاكرة) - Marco Ceppi♦
هناك خيار مفيد لدو يسمى - حجم -apparent. يمكن استخدامه للعثور على الحجم الفعلي لملف أو دليل (على العكس من بصمته على القرص) ، على سبيل المثال ، سيشغل ملف نصي مكون من 4 أحرف فقط حوالي 6 بايت ، ولكن سيظل يظهر كمستغرق 4K ~ في خرج منتظم du -sh. ومع ذلك ، إذا قمت بتمرير الخيار - حجم -apparent ، سيكون الإخراج 6. man du يقول: - أحجام الطباعة حجم -apparent-size ، بدلاً من استخدام القرص؛ على الرغم من أن الحجم الظاهري عادة ما يكون أصغر ، إلا أنه قد يكون أكبر بسبب الثقوب في ملفات ("sparse") ، التجزئة الداخلية ، الكتل غير المباشرة - Hopping Bunny
هذا يعمل ل OS X أيضا! شكراً ، كنت أبحث حقاً عن طريقة لتطهير الملفات ، سواء على الجهاز المحلي أو الخادم الخاص بي ، ولكن يبدو أن الأساليب الآلية لا تعمل. لذا ، ركضت du -hs * وذهبت إلى أكبر دليل واكتشفت الملفات التي كانت كبيرة جدًا ... هذه طريقة جيدة ، وأفضل جزء هو أنك لا تحتاج إلى تثبيت أي شيء! بالتأكيد تستحق بلادي upvote - Dev
BandaMuhammadAlHelal أعتقد أن هناك سببين: التقريب (du تقريبًا غريبًا إلى حد ما ، مع عدم وجود أرقام عشرية إذا كانت القيمة تحتوي على أكثر من رقم واحد في الوحدة المختارة) ، والكلاسيكية 1024 مقابل 1000 بادئة القضية. du لديه خيار -B (أو --block-size) لتغيير الوحدات التي تعرض بها القيم ، أو يمكنك استخدامها -b بدلا من -h للحصول على القيمة "الأولية" بالبايت. - Marcel Stimberg


لقد عثرت مؤخرًا على أداة تفاعلية رائعة تستند إلى ncurses ، والتي ستمنحك نظرة عامة سريعة حول أحجام الأدلة. بحثت عن هذا النوع من الأدوات لسنوات.

  • بسرعة من خلال التدرج الهرمي للملفات
  • يمكنك حذف على سبيل المثال ملفات مؤقتة ضخمة من داخل الأداة
  • سريع جدا

فكر فيه الباأوباب شجر إستوائي لسطر الأوامر:

apt-get install ncdu

140
2017-10-11 07:24



هذا رائع للغاية! مثل DaisyDisk ، لـ OSX - subZero
أداة لا تصدق! - Ted
ncdu رائع! بعد تثبيته ، افعل هذا ncdu /. ستجد بسرعة أكبر الملفات على النظام. اضغط أيضا h بينما داخل واجهة وحدة التحكم ncdu. لديها اختصارات مفيدة جدا - vlad-ardelean
أداة رهيبة! وذلك بفضل لرؤساء متابعة! - kstratis
أداة رهيبة ومفيدة حقا. شكرا يا رجل :) - Frank


هذا يعثر على الحجم بشكل متكرر ويضعه بجوار كل اسم مجلد ، إلى جانب الحجم الإجمالي في الأسفل ، كل ذلك في الشكل البشري

du -hsc *

43
2017-12-19 16:32





استمتع!

du foldername

مزيد من المعلومات حول هذا الأمر هنا 


14
2017-08-05 18:22





tree هو أمر مفيد آخر لهذا العمل:

فقط قم بتثبيته عبر sudo apt-get install tree واكتب ما يلي:

tree --du -h /path/to/directory
...
...

33.7M used in 0 directories, 25 files

من عند شجرة رجل:

-h    Print  the size of each file but in a more human readable way, e.g. appending a size letter for kilo‐
      bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).

--du  For each directory report its size as the accumulation of sizes of all its files and  sub-directories
      (and their files, and so on). The total amount of used space is also given in the final report (like
      the 'du -c' command.)

7
2018-01-27 12:37





فيما يلي ما أستخدمه لطباعة الحجم الإجمالي والمجلد وحجم الملف:

$ du -sch /home/vivek/* | sort -rh

تفاصيل

 ------------------------------------------------------------
   -c, --total
          produce a grand total
   -h, --human-readable
          print sizes in human readable format (e.g., 1K 234M 2G)
   -s, --summarize
          display only a total for each argument
 -------------------------------------------------------------
   -h, --human-numeric-sort
          compare human readable numbers (e.g., 2K 1G)
   -r, --reverse
          reverse the result of comparisons

انتاج |

 70M    total
 69M    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
 52K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files

5
2017-10-06 14:05





الإجابات جعلت من الواضح ذلك du هي أداة للعثور على الحجم الإجمالي للدليل. ومع ذلك ، هناك بعض العوامل التي يجب وضعها في الاعتبار:

  • من حين اخر، du يمكن أن يكون الإخراج مضللاً لأنه يشير إلى المساحة المخصصة لنظام الملفات ، والتي قد تكون مختلفة عن مجموع أحجام الملفات الفردية. عادة ما يقوم نظام الملفات بتخصيص 4096 بايت لملف حتى لو قمت بتخزين حرف واحد فيه!

  • الاختلافات الناتج بسبب قوة 2 وقوة 10 وحدات. ال -h التبديل إلى du يقسم عدد البايتات بواسطة 2 ^ 10 (1024) ، 2 ^ 20 (1048576) إلخ لإعطاء إخراج الإنسان مقروء. قد يكون الكثير من الأشخاص أكثر تعايشًا مع رؤية صلاحيات 10 (على سبيل المثال ، 1K = 1000 ، 1M = 1000000) وتفاجئهم بالنتيجة.

للعثور على إجمالي مجموع أحجام جميع الملفات في دليل ، بالبايت ، قم بما يلي:

find <dir> -ls | awk '{sum += $7} END {print sum}'

مثال:

$ du -s -B 1
255729664

$ find .  -ls | awk '{sum += $7} END {print sum}'
249008169

3
2018-02-04 18:56



ستقوم find-ls-awk بإرجاع قيمة غير صحيحة للمجلدات الكبيرة # 1. لأحدث awk يمكنك إضافة --bignum أو -M . إذا لم يكن ذلك استخدامًا للخيار find . -ls | tr -s ' '|cut -d' ' -f 7| paste -sd+ |bc  # 2. - goozez
إذا كانت قوى 2 المستخدمة مشكلة ، هناك --si الخيار: "مثل - h ، ولكن استخدم قوى من 1000 وليس 1024" - muru


فقط لحجم الدليل بتنسيق قابل للقراءة ، استخدم أدناه:

du -hs directoryname

ربما هذا ليس في القسم الصحيح ، ولكن من سطر الأوامر ، يمكنك محاولة:

ls -sh filename

ال -sهو الحجم ، و -h هو الانسان مقروء.

استعمال -l لتظهر على ls قائمة ، مثل أدناه:

ls -shl

1
2018-05-12 09:09





du /foldername هو الأمر القياسي لمعرفة حجم المجلد. من الأفضل ممارسة البحث عن الخيارات من خلال قراءة صفحة الرجل:

man du

يجب عليك قراءة الصفحة رجل (المتاحة عبر الانترنت) قبل استخدام الأمر.


0
2017-12-05 09:17





في ما يلي نص برمجي POSIX يعمل مع:

  • ملف
  • ملفات
  • دليل
  • الدلائل
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'

مصدر


0
2018-03-27 11:48





أفضل ما أعتقده هو ما يلي:

du -h directory_name | tail -n1

سيعرض لك هذا فقط حجم الدليل الذي يهمك ولن يقوم بطباعة الأحجام من أي دلائل وملفات داخل هذا الدليل.

يجب أن أضيف أنه إذا كان حجم المجلد كبيرًا ، فستأخذ du وقتًا أطول. يجب أن تكون صبورًا حتى يعمل هذا الأمر. تمامًا مثل أي أمر آخر لـ unix ، قد تجد الوقت الإجمالي لهذه العملية باستخدام time قبل هذا الأمر:

time du -h directory_name | tail -n1

-2
2017-12-19 06:35



du لديه خيار لهذا: -s - muru