सबसे बड़ी फ़ाइलों / निर्देशिकाओं को खोजने के लिए लिनक्स उपयोगिता [बंद]


134

मैं एक प्रोग्राम की तलाश में हूँ जो मुझे दिखा सके कि कौन सी फाइलें / निर्देशिका सबसे अधिक जगह पर कब्जा करती हैं, कुछ इस तरह:

74% music
 \- 60% music1
 \- 14% music2
12% code
13% other

मुझे पता है कि यह केडीई 3 में संभव है, लेकिन मैं ऐसा नहीं करूंगा - केडीई 4 या कमांड लाइन को प्राथमिकता दी जाती है।


मैक उपयोगकर्ताओं के लिए, मैं सिर्फ डिस्क इन्वेंटरी एक्स नामक इस मुफ्त सॉफ्टवेयर की सिफारिश करना चाहता हूं। इसे यहाँ डाउनलोड करें derlien.com मैक
ओएसएक्स के

जवाबों:


131

सबसे बड़ी 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

सबसे बड़ी फ़ाइल पहले सूचीबद्ध : find . -type f -print0 | xargs -0 du | sort -nr | head -10 | cut -f2 | xargs -I{} du -sh {}(यानी sort -nr | head -10इसके बजाय उपयोग करें sort -n | tail -10)
सैंड्रा रॉसी

200

मैं हमेशा उपयोग करता हूं ncdu। यह इंटरैक्टिव है और बहुत तेज है।


हाँ और यह छोटा है!
ल्यूक स्टैनली

5
मुझे ncdu बहुत पसंद है। यह मेरे पसंदीदा Google में से एक है।
रोब

5
वाह। मुझे यह कैसे पता नहीं था। धन्यवाद!
पिक्सेल

22
+1000 के लिए ncdu--- यह htopडिस्क स्थान के लिए पसंद है। सुपर उपयोगी!
नूह ससमान

चूँकि वहाँ न तो झंडे दिखते हैं और न ही .config विकल्प, यहाँ कुंजी क्रम आप शायद हर बार जब आप इसे चलाते हैं, यदि आप फ़ाइलों और फ़ोल्डरों को देखकर और रिश्तेदार प्रतिशत आँकड़े देखना पसंद करते हैं [t] [g] [g]:।
राइमो

37

एक त्वरित दृश्य के लिए:

du | sort -n

सभी निर्देशिकाओं को सबसे बड़े अंतिम के साथ सूचीबद्ध करता है।

du --max-depth=1 * | sort -n

या, फिर से, निरर्थक से परहेज *:

du --max-depth=1 | sort -n

वर्तमान निर्देशिका में सभी निर्देशिकाओं को सबसे बड़े अंतिम के साथ सूचीबद्ध करता है।

-n पैरामीटर को सॉर्ट करने के लिए आवश्यक है कि पहले फ़ील्ड को टेक्स्ट के बजाय एक संख्या के रूप में सॉर्ट किया जाए, लेकिन -h पैरामीटर का उपयोग करने के लिए यह प्रस्ताव को शामिल करता है क्योंकि हमें सॉर्ट के लिए एक महत्वपूर्ण संख्या की आवश्यकता है)

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


3
* वास्तव में आवश्यक है। क्या यह डिफ़ॉल्ट रूप से वर्तमान dir में सभी फ़ाइलों को शामिल नहीं करता है?
जोश हंट

नहीं, * बेमानी होना चाहिए। मुझे यकीन नहीं है कि इसका उपयोग करना एक अच्छी आदत या बुरे का संकेत है। इस पर ध्यान दिलाने के लिए धन्यवाद। मैंने इसे वैकल्पिक रूप में प्रतिबिंबित करने के लिए उत्तर में संशोधन किया है।
मास

यह ठीक है लेकिन परिणाम बहुत अनुकूल नहीं हैं। मैं आम तौर पर इस ओर मुड़ता हूं:find {/path/to/directory} -type f -size +{file-size-in-kb}k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'
deed02392

रोमन # डु - मक्स-डेप्थ = 1 | sort -n du: अवैध विकल्प - - उपयोग: du [-ए] [-H | -एल | -पी।] [-A | -s | -डी गहराई] [-सी] [-एल] [-एच | -क | -म | -B bsize] [-n] [-x] [-I मास्क] [फ़ाइल ...]
होम्स

du -h --max-depth=1 2>/dev/null | sort -nr | grep -v ^0-
थोडा टिडियर

23

ज्यादातर चीजों के लिए, मैं सीएलआई उपकरण पसंद करता हूं, लेकिन ड्राइव के उपयोग के लिए, मुझे वास्तव में फाइललाइट पसंद है । प्रस्तुति मेरे द्वारा देखे गए किसी भी अन्य अंतरिक्ष प्रबंधन उपकरण की तुलना में अधिक सहज है।

फिलाइट स्क्रीनशॉट


1
फिलाइट मेरा स्पेस-हॉग प्रूनिंग टूल है।
रयान थॉम्पसन

बहुत अच्छा ऐप। +1
rpax

नेत्रहीन, यह कलात्मक रूप से पेचीदा है, लेकिन सहज ज्ञान युक्त है? बस इसे देखने से, मुझे नहीं पता कि यह क्या प्रतिनिधित्व कर रहा है। क्या कोई इसे समझा सकता है? मैं साइट पर गया, और मैंने कोई स्पष्टीकरण नहीं देखा।
जी-मैन

मैक पर एक समान उपकरण डेज़ीडिस्क है, जो daisydiskapp.com
कंप्यूटिंग

20

Filelight केडीई उपयोगकर्ताओं के लिए बेहतर है, लेकिन पूर्णता के लिए (सवाल शीर्षक सामान्य है) मैं उल्लेख करना होगा बओबाब उबंटू, उर्फ डिस्क उपयोग विश्लेषक में शामिल है:

यहां छवि विवरण दर्ज करें


यदि आप मैक प्लेटफ़ॉर्म पर इसके बराबर की तलाश कर रहे हैं, तो DaisyDisk चेकआउट करें।
कंप्यूटिंग

8

एक GUI उपकरण, केडीआईआरएएसएटीएट , तालिका रूप और रेखांकन दोनों में डेटा दिखाता है। आप वास्तव में जल्दी से देख सकते हैं जहां अधिकांश स्थान का उपयोग किया जाता है।

यहां छवि विवरण दर्ज करें

मुझे यकीन नहीं है कि यह वास्तव में केडीई उपकरण है जो आप नहीं चाहते थे, लेकिन मुझे लगता है कि यह अभी भी इस तरह से एक प्रश्न में उल्लेख किया जाना चाहिए। यह अच्छा है और बहुत से लोग शायद इसे नहीं जानते - मैंने केवल इसके बारे में हाल ही में सीखा है।


जवाब के लिए धन्यवाद। यह वही सटीक उपकरण है जो मेरे पास केडीई 3 में था, लेकिन मैं केडीई 4 में चला गया
रॉबर्ट मंटीनू

क्या आप वाकई KDE4 के लिए kdirstat नहीं प्राप्त कर सकते हैं?
जोनिक जूल

4
Kdirstat sooooo धीमी है। ncduइसके बजाय उपयोग करें ।
डेनिथ

मैंने अभी-अभी ncdu को खोजने के लिए ctrl + f मारा, और देखा कि मैंने पहले ही @Daenyth
Rob

KDE पर, इसे k4dirstat कहा जाता है ।
फ़िहग

5

एक संयोजन हमेशा यूनिक्स पर सबसे अच्छी चाल है।

du -sk $(find . -type d) | sort -n -k 1

KB में निर्देशिका का आकार दिखाएगा और अंत में सबसे बड़ा देने के लिए छाँटेगा।
ट्री-व्यू को हालांकि कुछ और फू की आवश्यकता होगी ... क्या यह वास्तव में आवश्यक है?

ध्यान दें कि यह स्कैन निर्देशिकाओं में नेस्टेड है, इसलिए यह उच्च निर्देशिकाओं के लिए फिर से उप-निर्देशिकाओं की गणना करेगा और आधार निर्देशिका .कुल उपयोग योग के रूप में अंत में दिखाई देगा।

आप एक विशिष्ट गहराई पर खोज करने के लिए खोज पर गहराई नियंत्रण का उपयोग कर सकते हैं।
और, अपने स्कैनिंग के साथ वास्तव में बहुत कुछ शामिल करें ... जो आप चाहते हैं उसके आधार पर। के findसाथ गहराई नियंत्रण -maxdepthऔर -mindepthएक विशिष्ट उप-निर्देशिका गहराई तक सीमित कर सकता है।


यहाँ आपकी arg-too-long समस्या के लिए एक परिष्कृत बदलाव है

find . -type d -exec du -sk {} \; |  sort -n -k 1

मैंने कोशिश की है कि मुझे बहुत सारी 'डु: टास्क: ऐसी कोई फाइल या निर्देशिका' नहीं मिली है
जोश हंट

जवाब के लिए धन्यवाद। दुर्भाग्य से मुझे बैश
रॉबर्ट मंटीनू

3

मुझे gt5 पसंद है । आप पेड़ को नेविगेट कर सकते हैं और अधिक विस्तार के लिए नीचे ड्रिल करने के लिए उपनिर्देशिका खोल सकते हैं। यह परिणामों को प्रदर्शित करने के लिए एक पाठ-मोड वेब ब्राउज़र का उपयोग करता है, जैसे कि lynx। सर्वोत्तम परिणामों के लिए एलिंक स्थापित करें ।

वैकल्पिक शब्द


2

यद्यपि यह आपको उस तरह का नेस्टेड आउटपुट नहीं देता है, कोशिश करें 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

धन्यवाद, लेकिन यह ठीक से नहीं दिखाता है कि कौन सी निर्देशिका सबसे बड़ी है। यदि मैं इसे अपने घर निर्देशिका में शुरू करता हूं तो आउटपुट अनुपयोगी है।
रॉबर्ट मुंटेनु

1

यहाँ स्क्रिप्ट है जो इसे आपके लिए स्वचालित रूप से करती है।

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% ***

आपको यह स्क्रिप्ट बहुत आसान और उपयोगी लग सकती है!


2
जब लिंक की गई वेबसाइट निर्देश देती है, तो आपके लिए यह पसंद किया जाता है कि आप बाहरी साइट का संदर्भ दें (जो एक निजी ब्लॉग की तरह दिखता है)। यह लिंक रोट को रोक देगा और इस साइट पर
कनाडाई ल्यूक

1
लिंक टूट गया है?
Danijel

1

यद्यपि प्रत्येक फ़ाइल / निर्देशिका का प्रतिशत डिस्क उपयोग लाभदायक है, लेकिन अधिकांश समय डिस्क के अंदर सबसे बड़ी फ़ाइलों / निर्देशिकाओं को जानना पर्याप्त होता है।

तो मेरा पसंदीदा यह है:

# 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

1

वर्तमान निर्देशिका और उसकी उपनिर्देशिकाओं में शीर्ष 25 फ़ाइलों को खोजने के लिए:

find . -type f -exec ls -al {} \; | sort -nr -k5 | head -n 25

"सॉर्ट -nr -k5" पाइप्ड कमांड के माध्यम से फाइलों के आकार के आधार पर छांटकर शीर्ष 25 फाइलों का उत्पादन करेगा।


1

एक अन्य विकल्प वृद्ध है जो अंतिम-एक्सेस समय तक डिस्क स्थान को तोड़ देता है, जिससे अंतरिक्ष बर्बाद करने वाली फ़ाइलों का पता लगाना आसान हो जाता है।

यह भी अस्थायी वेब पृष्ठों की सेवा के बिना एक्स विंडोज के बिना एक सर्वर पर काम करता है, इसलिए उपयोग को रेखांकन के साथ दूरस्थ रूप से विश्लेषण किया जा सकता है। सर्वर का IP पता मानकर 192.168.1.101 है, आप इसे सर्वर की कमांड लाइन पर टाइप कर सकते हैं

agedu -s / -w --address 192.168.1.101:60870 --auth basic -R

यह उपयोगकर्ता नाम, पासवर्ड और URL प्रिंट करता है जिसके साथ आप "GUI" तक पहुँच सकते हैं और परिणाम ब्राउज़ कर सकते हैं। पूर्ण होने पर, समाप्त ageduके साथ Ctrl+Dसर्वर पर।


0
du -chs /*

आपको रूट डायरेक्टरी की एक सूची दिखाएगा।


0

सूची को थोड़ा और पूरा करने के लिए, मैं अपना पसंदीदा डिस्क उपयोग विश्लेषक जोड़ता हूं, जो है xdiskusage

GUI मुझे कुछ अन्य अच्छे ol 'X उपयोगिताओं की याद दिलाता है, यह तेज़ और फूला हुआ नहीं है, लेकिन आप फिर भी पदानुक्रम में आसानी से नेविगेट कर सकते हैं और कुछ प्रदर्शन विकल्प रख सकते हैं:

$ xdiskusage /usr

यहां छवि विवरण दर्ज करें


0

निम्नलिखित एक-लाइनर का प्रयास करें (वर्तमान निर्देशिका में शीर्ष -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

इसलिए ये एलियास आपकी आरसी फाइलों में (हर बार जब आपको जरूरत हो) उपयोगी होते हैं :

alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.