सवाल मैं कमांड लाइन से निर्देशिका (फ़ोल्डर) का कुल आकार कैसे निर्धारित करूं?


निर्देशिका (फ़ोल्डर) में सभी फ़ाइलों के कुल कुल आकार (डिस्क उपयोग) को प्रदर्शित करने के लिए कोई आसान आदेश है?

मैंने इन्हें आजमाया है, और वे जो भी चाहते हैं वह नहीं करते हैं:

  • 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 "मानव पठनीय" आकार मानों को ध्यान में रखेगा।


यदि सभी फाइलों और निर्देशिकाओं को दोबारा सूचीबद्ध करने से बचना चाहते हैं, तो आप आपूर्ति कर सकते हैं --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♦
डुप्लिकेट-आकार नामक डु के लिए एक उपयोगी विकल्प है। इसका उपयोग किसी फ़ाइल या निर्देशिका के वास्तविक आकार को खोजने के लिए किया जा सकता है (डिस्क पर इसके पदचिह्न के विपरीत) उदाहरण के लिए, केवल 4 वर्णों वाली एक टेक्स्ट फ़ाइल लगभग 6 बाइट्स पर कब्जा कर लेगी, लेकिन फिर भी ~ 4K लेने के रूप में दिखाई देगी एक नियमित du -sh आउटपुट। हालांकि, यदि आप - अभिभावक-आकार विकल्प पास करते हैं, तो आउटपुट 6 होगा। मैन डु कहते हैं: - डिस्क उपयोग के बजाए स्पष्ट आकार आकार स्पष्ट आकार; हालांकि स्पष्ट आकार आमतौर पर छोटा होता है, यह छेद ('स्पैस') फ़ाइलों, आंतरिक विखंडन, अप्रत्यक्ष ब्लॉक में छेद के कारण बड़ा हो सकता है - Hopping Bunny
यह ओएस एक्स के लिए भी काम करता है! धन्यवाद, मैं वास्तव में अपनी स्थानीय मशीन और मेरे सर्वर दोनों पर फ़ाइलों को साफ़ करने का एक तरीका ढूंढ रहा था, लेकिन स्वचालित तरीके से काम नहीं करना प्रतीत होता था। तो, मैं भाग गया du -hs * और सबसे बड़ी निर्देशिका में गया और पता चला कि कौन सी फाइलें इतनी बड़ी थीं ... यह एक अच्छी विधि है, और सबसे अच्छा हिस्सा यह है कि आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है! निश्चित रूप से मेरे अपवित्र के लायक है - Dev
@ बांदा मुहम्मद अहमहल मुझे लगता है कि दो कारण हैं: गोल (du कुछ हद तक अनोखा दौर है, यदि किसी इकाई को चयनित इकाई में एक से अधिक अंकों का मूल्य होता है), और शास्त्रीय 1024 बनाम 1000 उपसर्ग मुद्दा। du एक विकल्प है -B (या --block-size) उन इकाइयों को बदलने के लिए जिसमें यह मान प्रदर्शित करता है, या आप इसका उपयोग कर सकते हैं -b के बजाय -h बाइट्स में "कच्चे" मान प्राप्त करने के लिए। - Marcel Stimberg


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

  • फ़ाइल पदानुक्रम के माध्यम से जल्दी ड्रिलडाउन
  • आप उदा। हटा सकते हैं उपकरण के अंदर से विशाल अस्थायी फ़ाइलें
  • बहुत ज़्यादा तेज़

इसके बारे में सोचो बाओबाब कमांड लाइन के लिए:

apt-get install ncdu

140
2017-10-11 07:24



यह बिल्कुल शानदार है! ओएसएक्स के लिए डेज़ीडिस्क की तरह - subZero
अविश्वसनीय उपकरण! - Ted
ncdu कमाल है! इसे स्थापित करने के बाद, बस यह करें ncdu /। आपको सिस्टम पर सबसे बड़ी फाइलें बहुत जल्दी मिल जाएंगी। भी दबाएं h जबकि एनसीडीयू कंसोल इंटरफ़ेस के अंदर। इसमें बहुत उपयोगी शॉर्टकट हैं - 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 (जैसे 1 के = 1000, 1 एम = 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। नए अजीब के लिए आप जोड़ सकते हैं --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





यहां एक पॉज़िक्स स्क्रिप्ट है जो इसके साथ काम करेगी:

  • एक पंक्ति
  • फ़ाइलें
  • एक निर्देशिका
  • निर्देशिकाएँ
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'

स्रोत


0
2018-03-27 11:48





सबसे अच्छा मुझे लगता है कि निम्नलिखित है:

du -h directory_name | tail -n1

यह आपको केवल उस निर्देशिका का आकार दिखाएगा जिसमें आप रुचि रखते हैं और उस निर्देशिका के अंदर किसी निर्देशिका और फ़ाइलों के आकार मुद्रित नहीं करेंगे।

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

time du -h directory_name | tail -n1

-2
2017-12-19 06:35



du इसके लिए एक विकल्प है: -s - muru