उन फ़ाइलों को खोजना जो सबसे अधिक डिस्क स्थान का उपयोग करते हैं


43

क्या मेरी हार्ड ड्राइव पर सबसे बड़ी फ़ाइलों को सूचीबद्ध करना संभव है? मैं अक्सर df -Hअपने डिस्क उपयोग को प्रदर्शित करने के लिए उपयोग करता हूं, लेकिन यह केवल प्रतिशत पूर्ण, शेष जीबी, आदि देता है।

मैं बहुत अधिक डेटा-गहन गणना करता हूं, जिसमें बड़ी संख्या में छोटी फाइलें और बहुत बड़ी संख्या में बहुत बड़ी फाइलें होती हैं। चूंकि मेरी अधिकांश डिस्क स्थान का उपयोग बहुत कम संख्या में फाइलों में है, इसलिए यह पता लगाना मुश्किल हो सकता है कि ये बड़ी फाइलें कहां हैं। 1 kB फ़ाइल हटाने से बहुत अधिक स्थान खाली नहीं होता है, लेकिन 100 GB फ़ाइल हटाना है। क्या उनके आकार के संदर्भ में हार्ड ड्राइव पर फ़ाइलों को सॉर्ट करने का कोई तरीका है?

धन्यवाद।


'Tdu' के लिए, यह भी देखें: unix.stackexchange.com/questions/425615/…
जोसेफ पॉल

जवाबों:


47

मानक उपलब्ध उपकरणों के साथ:

वर्तमान निर्देशिका से शीर्ष 10 सबसे बड़ी फ़ाइलों को सूचीबद्ध करने के लिए: du . | sort -nr | head -n10

वर्तमान निर्देशिका से सबसे बड़ी निर्देशिकाओं को सूचीबद्ध करने के लिए: du -s * | sort -nr | head -n10

अद्यतन इन दिनों मैं आमतौर पर एक अधिक पठनीय रूप का उपयोग करता हूं (जैसा कि जय चक्र एक अन्य उत्तर में बताते हैं और छोड़ देते हैं | head -n10, बस इसे स्क्रीन से स्क्रॉल करने दें। अंतिम पंक्ति में सबसे बड़ी फ़ाइल या निर्देशिका (ट्री) है।

कभी-कभी, उदा। जब आपके पास वर्तमान निर्देशिका में बहुत सारे आरोह बिंदु होते हैं, तो उपयोग -xया एकाधिक के बजाय --exclude=PATTERN, यह अप्रयुक्त माउंट बिंदु ( अक्सर /mnt ) पर फाइल सिस्टम को माउंट करने और वहां से काम करने के लिए हाथ में है।

आपका ध्यान रखें कि बड़े (NFS) संस्करणों के साथ काम करते समय, आप duबहुत सारे (उप) निर्देशिकाओं को चलाने के दौरान स्टोरेज बैकएंड (फाइलर) पर पर्याप्त भार डाल सकते हैं । उस मामले quotaमें वॉल्यूम पर सेटिंग पर विचार करना बेहतर है ।


3
अपने पहले विकल्प के लिए, क्या आप उन्हें केवल सूचीबद्ध नहीं कर सकते ls -Sl | head?
बर्नहार्ड

नहीं, duपूरी निर्देशिका ट्री का पता लगाता है, जबकि ls -S केवल वर्तमान निर्देशिका की जांच करता है।
जिप्पी

35

जिप्पी के जवाब में जोड़ना

मानव पठनीय प्रारूप में वर्तमान निर्देशिका से सबसे बड़ी निर्देशिकाओं को सूचीबद्ध करने के लिए:

du -sh * | sort -hr | head -n10

नमूना:

[~]$ du -sh * | sort -hr | head -n10
48M app
11M lib
6.7M    Vendor
1.1M    composer.phar
488K    phpcs.phar
488K    phpcbf.phar
72K doc
16K nbproject
8.0K    composer.lock
4.0K    README.md

यह पढ़ने के लिए और अधिक सुविधाजनक बनाता है :)


14

कोशिश करें ncdu, क्योंकि यह आपको डिस्क उपयोग का अवलोकन दे सकता है। इसकी वेबसाइट से:

एक ncurses इंटरफ़ेस के साथ एक डिस्क उपयोग विश्लेषक, जिसका उद्देश्य एक दूरस्थ सर्वर पर चलाया जाना है, जहां आपके पास एक संपूर्ण अंतराल सेटअप नहीं है, लेकिन एक सरल SSH कनेक्शन के साथ करना है। ncdu का लक्ष्य तेज, सरल और उपयोग में आसान होना चाहिए, और स्थापित किए गए ncurses के साथ किसी भी न्यूनतम POSIX जैसे वातावरण में चलने में सक्षम होना चाहिए।


3

(जीएनयू)

du -max /dir | sort -nबड़ी फ़ाइलों के साथ-साथ बड़ी निर्देशिकाओं का प्रदर्शन करेगा, यह पहचानने के लिए उपयोग किया जा सकता है कि आपको कुछ सफाई करने की आवश्यकता कहाँ है।

du -max | sort -n | tail -1000
...
46632   ./i386/update/SuSE-SLES/8/rpm/i586/kernel-source-2.4.21-138.i586.rpm
49816   ./UnitedLinux/apt/i386/RPMS.updates/k_debug-2.4.21-138.i586.rpm
679220  ./UnitedLinux/apt/i386/RPMS.updates
679248  ./UnitedLinux/apt/i386
679252  ./UnitedLinux/apt
691820  ./UnitedLinux/i586
691836  ./i386/update/SuSE-SLES/8/rpm/i586
695192  ./i386/update/SuSE-SLES/8/rpm
695788  ./i386/update/SuSE-SLES/8
695792  ./i386/update/SuSE-SLES
695804  ./i386/update
695808  ./i386
1390184 ./UnitedLinux

(मुझे पता है कि यह काफी पुराना पेड़ है: पी)


2

उबंटू में हर फ़ाइल और निर्देशिका का आकार खोजने का एक सरल और प्रभावी तरीका है:

अनुप्रयोग> सहायक उपकरण> डिस्क उपयोग विश्लेषक

इस विंडो में टूलबार पर "स्कैन फाइलसिस्टम" बटन पर क्लिक करें। थोड़े समय (सेकंड) के बाद आपके पास हर निर्देशिका और फ़ाइल का डिस्क उपयोग होता है।



0

आप इस कमांड के साथ कोशिश कर सकते हैं, यह 20Mb से बड़ी सभी फाइलों को सूचीबद्ध करेगा।

find / -type f -size +20000k -exec ls -lh {} \; 2> /dev/null \
  | awk '{ print $NF ": " $5 }'  | sort -hrk 2,2

3
यदि आपके फ़ाइल सिस्टम की सबसे बड़ी फ़ाइल 20MB है, तो आप शायद डिस्क स्थान पर कम नहीं चलेंगे। कम से कम किसी भी HD के साथ इस सहस्राब्दी
केविन

यह केवल उदाहरण है, आप वहां जो भी चाहते हैं, डालते हैं। यह 20MB से बड़ी हर चीज को मिलेगा, न कि केवल 20MB फाइलें।
patseb

ls -lhतब sort?? ls -sया stat -c %bशायद बेहतर हैं।
मिकेल

मुझे नहीं मिला मेरा उदाहरण ls और सॉर्ट का उपयोग करता है। वह संपूर्ण डिस्क पर निर्देशिका नहीं फाइलें ढूंढना चाहता था।
19

0

निम्न कमांड टाइप करें

सीडी /

फिर टाइप करें

डु -श * | जीआरपी जी

ऊपर कमांड आपको दिखाता है कि किस डायरेक्टरी द्वारा कितनी मेमोरी का उपयोग किया गया है। उसके बाद आपको यह तय करना होगा कि आप किस निर्देशिका या फ़ाइल को हटाना चाहते हैं


-2

आप इस कमांड के साथ कोशिश कर सकते हैं, यह बड़ी फाइल को सूचीबद्ध करेगा:

ls -lrS | tail -1

वर्तमान निर्देशिका दिखाता है, संपूर्ण HDD नहीं।
slm

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