أنا أبحث عن برنامج لإظهار الملفات/الدلائل التي تشغل مساحة أكبر ، مثل:
74% music
\- 60% music1
\- 14% music2
12% code
13% other
أعلم أن ذلك ممكن في KDE3 ، لكنني أفضل ألا أفعل ذلك - يفضل KDE4 أو سطر الأوامر.
للعثور على أكبر 10 ملفات (linux/bash):
find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
للعثور على أكبر 10 أدلة:
find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
الفرق الوحيد هو -type {d:f}
.
يعالج الملفات ذات المسافات في الأسماء ، وينتج أحجام الملفات القابلة للقراءة البشرية في الإخراج. أكبر ملف مدرج أخيرًا. وسيطة الذيل هي عدد النتائج التي تراها (هنا أكبر 10 نتائج).
هناك نوعان من التقنيات المستخدمة للتعامل مع المسافات في أسماء الملفات. يستخدم find -print0 | xargs -0
محددات فارغة بدلاً من المسافات ، ويستخدم الثاني xargs -I{}
أسطر جديدة بدلاً من المسافات لإنهاء عناصر الإدخال.
مثال:
$ find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
76M ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz
76M ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
76M ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
76M ./tmp/projects/onthisday/onthisday.tar.gz
114M ./Dropbox/snapshots/weekly.tgz
114M ./Dropbox/snapshots/daily.tgz
114M ./Dropbox/snapshots/monthly.tgz
117M ./Calibre Library/Robert Martin/cc.mobi
159M ./.local/share/Trash/files/funky chicken.mpg
346M ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi
أنا دائما استخدام ncdu
. انها تفاعلية وسريعة جدا.
للحصول على عرض سريع:
du | sort -n
يسرد جميع الدلائل مع الأكبر الأخير.
du --max-depth=1 * | sort -n
أو ، مرة أخرى ، تجنب المتكرر *:
du --max-depth=1 | sort -n
يسرد جميع الدلائل في الدليل الحالي مع الأكبر الأخير.
(-المعلمة للفرز مطلوبة حتى يتم فرز الحقل الأول كرقم بدلاً من كنص ، لكن هذا يمنع استخدام -h المعلمة لـ du لأننا نحتاج إلى رقم مهم للفرز)
تتوفر معلمات أخرى لـ du إذا كنت تريد اتباع ارتباطات رمزية (الافتراضي هو عدم اتباع الارتباطات الرمزية) أو فقط إظهار حجم محتويات الدليل باستثناء الدلائل الفرعية ، على سبيل المثال. يمكن لـ du تضمين التاريخ والوقت في آخر مرة تم فيها تغيير أي ملف في الدليل.
بالنسبة لمعظم الأشياء ، أفضل أدوات CLI ، لكن بالنسبة لاستخدام محرك الأقراص ، فأنا أحب filelight . العرض التقديمي أكثر سهولة بالنسبة لي من أي أداة أخرى لإدارة المساحة التي رأيتها.
Filelight أفضل لمستخدمي KDE ، ولكن من أجل الاكتمال (عنوان السؤال عام) ، يجب أن أذكر Baobab مضمن في Ubuntu ، ويعرف أيضًا باسم Disk Usage Analyzer:
أداة واجهة المستخدم الرسومية ،KDirStat، تُظهر البيانات في شكل جدول ورسوميًا. يمكنك أن ترى بسرعة كبيرة حيث يتم استخدام معظم المساحة.
لست متأكدًا مما إذا كان هذا هو بالضبط أداة KDE التي لا تريدها ، لكنني أعتقد أنه لا يزال ينبغي ذكرها في سؤال مثل هذا. إنه أمر جيد وربما لا يعرفه الكثير من الناس - لقد تعلمت عن ذلك مؤخرًا بنفسي.
مزيج دائما هو أفضل خدعة على يونكس.
du -sk $(find . -type d) | sort -n -k 1
سيعرض أحجام الدليل في كيلوبايت والفرز لإعطاء أكبر في النهاية.
ومع ذلك ، فإن عرض الشجرة سيحتاج إلى مزيد من فو ... هل هو حقًا مطلوب؟
لاحظ أن هذا الفحص متداخل عبر الدلائل ، لذا فسيتم حساب الدلائل الفرعية مرة أخرى للدلائل الأعلى وسيظهر الدليل الأساسي .
في النهاية كإجمالي للاستفادة.
ومع ذلك يمكنك استخدام عنصر تحكم عمق في البحث للبحث في عمق محدد.
واشترك كثيرًا في المسح الضوئي الخاص بك ... اعتمادًا على ما تريد. يمكن أن يقتصر التحكم العميق في find
مع -maxdepth
و -mindepth
على عمق دليل فرعي محدد.
إليك صيغة مختلفة لمشكلتك الطويلة جدًا
find . -type d -exec du -sk {} \; | sort -n -k 1
على الرغم من أنه لا يمنحك ناتجًا متداخلًا كهذا ، فجرب du
du -h /path/to/dir/
إن تشغيل ذلك على مجلد المستندات يبث ما يلي:
josh-hunts-macbook:Documents joshhunt$ du -h
0B ./Adobe Scripts
0B ./Colloquy Transcripts
23M ./Electronic Arts/The Sims 3/Custom Music
0B ./Electronic Arts/The Sims 3/InstalledWorlds
364K ./Electronic Arts/The Sims 3/Library
77M ./Electronic Arts/The Sims 3/Recorded Videos
101M ./Electronic Arts/The Sims 3/Saves
40M ./Electronic Arts/The Sims 3/Screenshots
1.6M ./Electronic Arts/The Sims 3/Thumbnails
387M ./Electronic Arts/The Sims 3
387M ./Electronic Arts
984K ./English Advanced/Documents
1.8M ./English Advanced
0B ./English Extension/Documents
212K ./English Extension
100K ./English Tutoring
5.6M ./IPT/Multimedia Assessment Task
720K ./IPT/Transaction Processing Systems
8.6M ./IPT
1.5M ./Job
432K ./Legal Studies/Crime
8.0K ./Legal Studies/Documents
144K ./Legal Studies/Family/PDFs
692K ./Legal Studies/Family
1.1M ./Legal Studies
380K ./Maths/Assessment Task 1
388K ./Maths
[...]
بعد ذلك يمكنك فرز المخرجات عن طريق نقلها إلى sort
du /path/to/dir | sort -n
على الرغم من أن العثور على النسبة المئوية لاستخدام القرص لكل ملف/دليل مفيد ، إلا أن معرفة معظم الملفات/الدلائل الموجودة داخل القرص كافية في معظم الوقت.
لذلك المفضل لدي هو هذا:
# du -a | sort -n -r | head -n 20
والإخراج مثل هذا:
28626644 .
28052128 ./www
28044812 ./www/vhosts
28017860 ./www/vhosts/example.com
23317776 ./www/vhosts/example.com/httpdocs
23295012 ./www/vhosts/example.com/httpdocs/myfolder
23271868 ./www/vhosts/example.com/httpdocs/myfolder/temp
11619576 ./www/vhosts/example.com/httpdocs/myfolder/temp/main
11590700 ./www/vhosts/example.com/httpdocs/myfolder/temp/main/user
11564748 ./www/vhosts/example.com/httpdocs/myfolder/temp/others
4699852 ./www/vhosts/example.com/stats
4479728 ./www/vhosts/example.com/stats/logs
4437900 ./www/vhosts/example.com/stats/logs/access_log.processed
401848 ./lib
323432 ./lib/mysql
246828 ./lib/mysql/mydatabase
215680 ./www/vhosts/example.com/stats/webstat
182364 ./www/vhosts/example.com/httpdocs/tmp/aaa.sql
181304 ./www/vhosts/example.com/httpdocs/tmp/bbb.sql
181144 ./www/vhosts/example.com/httpdocs/tmp/ccc.sql
هنا هو السيناريو الذي يفعل ذلك لك تلقائيا.
http://www.thegeekscope.com/linux-script-to-find-largest-files/
فيما يلي نموذج إخراج البرنامج النصي:
**# sh get_largest_files.sh / 5**
[SIZE (BYTES)] [% OF DISK] [OWNER] [LAST MODIFIED ON] [FILE]
56421808 0% root 2012-08-02 14:58:51 /usr/lib/locale/locale-archive
32464076 0% root 2008-09-18 18:06:28 /usr/lib/libgcj.so.7rh.0.0
29147136 0% root 2012-08-02 15:17:40 /var/lib/rpm/Packages
20278904 0% root 2008-12-09 13:57:01 /usr/lib/xulrunner-1.9/libxul.so
16001944 0% root 2012-08-02 15:02:36 /etc/selinux/targeted/modules/active/base.linked
Total disk size: 23792652288 Bytes
Total size occupied by these files: 154313868 Bytes [ 0% of Total Disc Space ]
*** Note: 0% represents less than 1% ***
قد تجد هذا البرنامج مفيدًا جدًا ومفيدًا!
بديل آخر هو ageu الذي يحطم مساحة القرص بواسطة وقت الوصول الأخير ، مما يجعل من السهل تحديد موقع الملفات المهدرة للمساحة.
إنه يعمل حتى على خادم بدون X Windows من خلال عرض صفحات الويب المؤقتة بحيث يمكن تحليل الاستخدام عن بُعد باستخدام الرسوم البيانية. على افتراض أن عنوان IP للخادم هو 192.168.1.101 ، يمكنك كتابة هذا في سطر الأوامر للخادم
agedu -s / -w --address 192.168.1.101:60870 --auth basic -R
هذا يطبع اسم المستخدم وكلمة المرور وعنوان URL الذي يمكنك من خلاله الوصول إلى "واجهة المستخدم الرسومية" وتصفح النتائج. عند الانتهاء ، قم بإنهاء agedu
بـ Ctrl+D
على الخادم.
للعثور على أفضل 25 ملفًا في الدليل الحالي والأدلة الفرعية الخاصة به:
find . -type f -exec ls -al {} \; | sort -nr -k5 | head -n 25
سيتم إخراج أفضل 25 ملفًا عن طريق الفرز استنادًا إلى حجم الملفات عن طريق الأمر "sort -nr -k5" piped.
du -chs /*
سوف تظهر لك قائمة الدليل الجذر.
جرب الخطوط التالية: (تعرض أكبر 20 ملفًا في الدليل الحالي):
ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20
أو بأحجام بشرية قابلة للقراءة:
ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20
الأمر الثاني للعمل على OSX/BSD بشكل صحيح (مثل
sort
لا يحتوي على-h
) ، فأنت بحاجة إلى تثبيتsort
منcoreutils
.
لذلك فإن هذه الأسماء المستعارة مفيدة في ملفاتك rc (في كل مرة تحتاج إليها):
alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
لإكمال القائمة أكثر قليلاً ، أضفت مُحلل استخدام القرص المفضل لدي ، وهو xdiskusage
.
تتذكرني واجهة المستخدم الرسومية ببعض الأدوات المساعدة الأخرى الجيدة لـ ol 'X ، إنها سريعة وغير منتفخة ، ولكن يمكنك التنقل بسهولة في التسلسل الهرمي ولديك بعض خيارات العرض:
$ xdiskusage /usr