बैश में एक लाइन कमांड का उपयोग करके एक सूची प्रारूप में प्रत्येक उप-निर्देशिका आकार प्रदर्शित करें?


100

मैं एक सूची प्रारूप में निर्देशिकाओं और उनके आकारों की सूची प्राप्त करना चाहता हूं जैसे कि आप जब आप करते हैं तो आप कैसे प्राप्त करते हैं ls -l

बात यह है कि क्या एक लाइन कमांड है जो ऐसा कर सकती है? मुझे लगता है कि दूसरों को यह उत्पादन करने के लिए लंबे आदेश हैं। वह अभी बहुत लंबा है।

यह कमांड क्या कर सकती है या कमांड्स का संयोजन जो आसानी से टाइप किया जा सकता है? du -hइसे देता है, लेकिन यह सभी उप-फ़ोल्डर्स को प्रदर्शित करता है जो कि मैं नहीं चाहता। बस वर्तमान निर्देशिका फ़ोल्डर।

जवाबों:


71

आप संभवत: आकार द्वारा आदेशित निर्देशिकाओं को देखना चाहते हैं:

$ du -hs * | sort -hr

856M    lib
746M    share
612M    lib64
312M    src
267M    java
239M    bin
179M    sbin
173M    local
93M     i686-w64-mingw32
72M     libexec
26M     include
20M     puppet
772K    X11R6
20K     man
4.0K    games
4.0K    etc
0       tmp

निर्देशिका में बड़ी संख्या में प्रविष्टियाँ होने पर यह काम नहीं करता है। bash: /run/current-system/sw/bin/du: Argument list too long
क्रिस स्ट्रीकजेनस्की

123

इसे इस्तेमाल करे

du -h --max-depth=1

उत्पादन

oliver@home:/usr$ sudo du -h --max-depth=1
24M     ./include
20M     ./sbin
228M    ./local
4.0K    ./src
520M    ./lib
8.0K    ./games
1.3G    ./share
255M    ./bin
2.4G    .

विकल्प

यदि --max-depth=1आपके स्वाद के लिए थोड़ा लंबा है, तो आप भी उपयोग करके देख सकते हैं:

du -h -s *

यह -s( --summarize) का उपयोग करता है और केवल डिफ़ॉल्ट रूप से फ़ोल्डर के आकार को प्रिंट करेगा। वर्तमान कार्य निर्देशिका ( *) में सभी तत्वों को पारित करने से , यह समान आउटपुट का उत्पादन --max-depth=1करेगा:

उत्पादन

oliver@cloud:/usr$ sudo du -h -s *
255M    bin
8.0K    games
24M     include
520M    lib
0       lib64
228M    local
20M     sbin
1.3G    share
4.0K    src

अंतर सूक्ष्म है। पूर्व दृष्टिकोण वर्तमान कार्य निर्देशिका के कुल आकार और इसमें शामिल सभी फ़ोल्डरों के कुल आकार को प्रदर्शित करेगा ... लेकिन केवल 1 की गहराई तक।

उत्तरार्द्ध दृष्टिकोण व्यक्तिगत रूप से सभी पारित वस्तुओं के कुल आकार की गणना करेगा । इस प्रकार, इसमें lib64आउटपुट में सिमलिंक शामिल है , लेकिन छिपे हुए आइटम (जिसका नाम डॉट से शुरू होता है) को बाहर करता है। इसमें वर्तमान कामकाजी निर्देशिका के लिए कुल आकार का भी अभाव है, क्योंकि यह एक तर्क के रूप में पारित नहीं किया गया था।


4
एकदम सही जवाब। Mac OSX पर --depthपैरामीटर पहचाना नहीं गया है। du -h -d 1उसी परिणाम के लिए उपयोग करें ।
डायलन

6

सभी फ़ाइलों के आकार और डिस्क पर छिपी हुई फ़ाइलों का आकार प्रिंट करें:

el@dev /home/el $ du -sh `ls -a`
258M    .
265M    ..
4.0K    .classpath
258M    .git
4.0K    .gitignore
9.0K    nbactions.xml
12K     README
20K     .README.swp
4.0K    run.sh
23K    XmlPostPropagate.php


2

NCurses डिस्क उपयोग शेल कमांड का उल्लेख करने के लायक ।

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

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