शीर्ष स्थान लेने वाली निर्देशिका या फ़ाइलों का पता कैसे करें?


11

मेरी डिस्क स्थान से बाहर जा रही है:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sda7       803G  715G   48G  95% /home

मैं पूरी होम निर्देशिका के माध्यम से जाना चाहता हूं और शीर्ष 10 अंतरिक्ष-खपत निर्देशिका या फ़ाइलों का पता लगाना है, जिन्हें तय करना है कि किसको हटाया जाना है।

du -sh *सभी उपनिर्देशिकाओं का आकार देख सकते हैं, लेकिन यह केवल वर्तमान फ़ोल्डर प्राप्त करता है। मुझे क्रमशः और कई उप-विभाजनों में विभाजित करने की आवश्यकता हो सकती है और मुझे प्राप्त करने के लिए आवश्यक अपराधी हैं जो मुझे चाहिए।

क्या ऐसा करने का कोई अच्छा तरीका है?

जवाबों:


5

यदि आप एक GUI कोशिश Baobab का उपयोग कर सकते हैं । यह हार्ड डिस्क स्थान उपयोग का विश्लेषण करने के लिए एक चित्रमय उपकरण है।


10

ncdu एक कमांड लाइन विकल्प है जो निर्देशिकाओं को स्कैन करता है और डिस्क उपयोग को उच्चतम से निम्नतम तक सूचीबद्ध करता है। इसके लिए यह मेरा टूल है।

आप अभी भी इस तरह से पुनरावृत्ति में गोता लगाना होगा, लेकिन यह एक अच्छा तरीका है।


9

इस कमांड का उपयोग करें:

t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');du / –exclude /proc –exclude /sys –max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++) {printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'

यह आपको कमांड लाइन में एक ग्राफ का प्रकार दिखाएगा जो निर्देशिकाओं को दिखाएगा जो प्रतिशत में सबसे अधिक स्थान का उपभोग करते हैं।

यदि आप /homeकेवल विश्लेषण करना चाहते हैं - आप इसे इस तरह से कमांड में निर्दिष्ट कर सकते हैं:

t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');du /home –exclude /proc –exclude /sys –max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++) {printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'

ऐसा लगेगा: यहाँ छवि विवरण दर्ज करें

यहां से ले गए ।


9

डु | सॉर्ट -rn | सिर

  • डु = डिस्क उपयोग
  • संख्यात्मक क्रम का उपयोग करके क्रमबद्ध करें, रिवर्स
  • दस पहली पंक्तियाँ

4

बाओबाब के लिए +1। कमांड लाइन पर, मैं आमतौर पर बस का उपयोग करता हूं du -hcsx *या du -hcsx * | sort -h(एक असफल हाल के संस्करण की आवश्यकता है sort) और फिर उपनिर्देशिका की जांच करता हूं जैसा कि मैं जाता हूं।

इसके अलावा, इसके ऊपर + mcदबाकर उपनिर्देशिका आकारों की गणना करने की एक साफ-सुथरी विशेषता है (प्रेस + शीर्ष पर इसे सभी उपनिर्देशिकाओं के लिए आकार की गणना करने के लिए। फिर आप मेनू में आकार के आधार पर छँटाई कर सकते हैं।CtrlSpaceCtrlSpace..


2
कमांड लाइन पर, आपको ncdu आज़माना चाहिए। यह मूल रूप से एक ncurses du है।
रोब


0

एक और जीयूआई पसंदीदा: kdirstat

इसमें आपकी फ़ाइलों को हटाने / संपीड़ित करने में मदद करने के लिए अच्छी ड्रिलडाउन क्षमताएं हैं, और (एक्स्टेंसिबल) टूल मेनू है।

मेरे पास एक कमांड लाइन स्क्रिप्ट भी है जिसे मैं dir_usage कहता हूं जिसे मैंने पास्टबिन पर अपलोड किया है।


-1
find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

उपरोक्त कमांडलाइन निम्नलिखित (क्रम में) करती है:

  • वर्तमान फ़ोल्डर के भीतर सभी फाइलें (निर्देशिका नहीं) खोजें
  • उनमें से प्रत्येक के लिए उपयोग प्रदर्शित करें
  • संख्यात्मक रूप से परिणामों को क्रमबद्ध करें
  • केवल अंतिम 10 (उच्चतम उपयोग) लाइनों का उपयोग करें
  • 10 फ़ाइल नाम काटें (पहला कॉलम उपयोग है, दूसरा फ़ाइल नाम है)
  • प्रत्येक फ़ाइल नाम के लिए उपयोग प्रदर्शित करें (मानव प्रारूप में)

यह वर्तमान फ़ोल्डर और सबफ़ोल्डर्स के भीतर सबसे बड़ी 10 फ़ाइलों के मानव-पठनीय आकारों की एक सूची के परिणामस्वरूप होगा।


3
क्या आप अपने जवाब पर विस्तार कर सकते हैं?
50-3
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.