यह छिपी हुई फ़ाइलों / फ़ोल्डरों को क्यों नहीं दिखाता है?


139

मैं अपने सिस्टम के माध्यम से देख रहा था du -sch ./*कि बड़ी बेकार फाइलें जिन्हें मैं बिना किसी कारण के शेयर कर सकता हूँ, जब मैंने यह पाया:

$ du -sch ./*
du: cannot read directory ‘./drbunsen/.gvfs’: Permission denied
du: cannot read directory ‘./drbunsen/.cache/dconf’: Permission denied
18G ./drbunsen
18G total

$ cd drbunsen/
$ du -sch ./*
601M ./Desktop
20K ./Documents
598M ./Downloads
4.0K ./flash
4.0K ./Music
8.0M ./Pictures
4.0K ./Public
4.0K ./Templates
4.0K ./Ubuntu One
8.0K ./Videos
11G ./VirtualBox VMs
6.9M ./workspace
12G total

मैं छिपी हुई फ़ाइलों को कैसे दिखाऊं? du -sch ./.*के रूप में एक ही परिणाम देता है du -sch ./*


du -hs .[^.]* *सभी छिपी हुई फ़ाइलों को छोड़कर , .और ..जो अन्य उत्तर याद आ रहे हैं।
लैगिंगसर्प्लेक्स

जवाबों:


245

उपयोग

du -sch .[!.]* * |sort -h

अपने घर फ़ोल्डर में।

वैकल्पिक रूप से, मैं जिस कमांड का सबसे अधिक उपयोग करता हूं वह है

ncdu

यदि आवश्यक हो तो स्थापित करना आसान है:

sudo apt-get install ncdu

1
धन्यवाद, आप एक प्रतिभाशाली व्यक्ति हैं। मैं बैश में मास्टर नहीं हूं, क्या करना [?] करते हैं!
Dr_Bunsen

10
@Dr_Bunsen: यह एक ऐसा ग्लोब है, जो एकल के साथ शुरू होने वाली सभी फाइलों को सूचीबद्ध करता है .। यहाँ एक साफ-सुथरी चाल है: यदि आप नहीं जानते कि एक ग्लोब-दिखने वाली चीज़ क्या करती है, तो दौड़ने की कोशिश करें echo .[!.]*या जो भी हो। शेल फिर ग्लोब का विस्तार करेगा और इसे पास करेगा echo, जो फाइलों की सूची को प्रिंट करेगा।
तिखन जेल्विस

14
यह पसंद की गई फ़ाइलों को सूचीबद्ध करने में विफल रहता है और उन फ़ाइलों के ..fooसाथ समस्या पैदा कर सकता है जिनके नाम से शुरू होता है -। यह भी विफल हो सकता है अगर arg सूची बहुत लंबी है। du -ahd1उन समस्याओं में से कोई भी नहीं होगा।
स्टीफन चेज़लस

मूल प्रश्न के लिए अप्रासंगिक, लेकिन दिन के उपयोग के लिए प्रासंगिक: यह कुल प्रदर्शित करने के लिए 'सी' स्विच को शामिल करने और इस आदेश को याद रखने के लिए थोड़ा आसान बनाने के लिए विकल्पों को फिर से व्यवस्थित करने के लिए उपयोगी हो सकता है du -cksh .[!.]* * |sort -h:।
डैडी 32

56

कोरुटिल्स मेलिंग लिस्ट में मेरा एक ही सवाल है, क्योंकि @ don.joey द्वारा इस अजीब कमांड को याद रखना मेरे लिए मुश्किल था। और बॉब प्राउलक्स ने बेहतर, अधिक प्राकृतिक आदेश का प्रस्ताव दिया: du -ahd1 | sort -h

यदि आप वर्तमान निर्देशिका की सभी फाइलों को सूचीबद्ध करना चाहते हैं तो या तो उपयोग करें '।' या इसे बिल्कुल भी कोई फ़ाइल तर्क न दें। इसके अलावा, आप -d, --max-गहराई = N विकल्प का उपयोग करना चाह सकते हैं।

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

डु - १


7
-aइसके समकक्ष होने का विकल्प जोड़ें ।
स्टीफन चेज़लस

6
यह स्वीकृत उत्तर होना चाहिए क्योंकि यह सरल और याद रखने और समझने में आसान है।
बस्तिन

8

जब आप निर्देशिका के अंदर उसी कमांड को चलाते हैं, तो यह उन छिपी हुई फाइलों को शामिल नहीं करता है जो .गिनती में शुरू होती हैं । यदि आपके पास उदाहरण के लिए स्टीम स्थापित है, तो यह गेम को इंस्टॉल करने के लिए डिफ़ॉल्ट है ~/.local/share/Steam/और यह स्वयं भी वहां स्थापित है।

बैश के तहत आपको स्पष्ट du -sch .[!.]* *रूप से चलाने की जरूरत है क्योंकि यह .*ग्लोब का ठीक से विस्तार नहीं करता है । के तहत zshया अन्य गोले, du -sch * .*काम करना चाहिए, जैसा .*कि वर्तमान निर्देशिका में सभी छिपी हुई फ़ाइलों की सूची को शामिल करने के लिए विस्तारित किया जाना चाहिए।


ठीक। स्पष्ट रूप से बैश के साथ एक समस्या है, क्योंकि यह ठीक से विस्तार करने के लिए प्रतीत नहीं होता है .*। लेकिन du -sch * .*सही काम करता है zsh। बैश के तहत, du -sch .*गिनती करने के लिए लगता है , .लेकिन व्यक्तिगत रूप से फ़ाइलों को दिखाने के लिए विस्तार नहीं करता है।
dobey

मेरे लिए। * का विस्तार भी होता है ../* और इसलिए डू उस निर्देशिका से बाहर निकल जाता है जिसे मैं इसका आकार देखना चाहता हूं! मुझे इसके बजाय /।
अरी

यह zsh है और सभी गोले Forsyth शेल (आजकल जो केवल ज्यादातर pdksh और इसके डेरिवेटिव हैं) से प्राप्त होते हैं जो सही काम करते हैं और विस्तार नहीं करते हैं। और यहाँ। अन्य सभी बॉर्न जैसे गोले (बैश, बॉर्न, एटी एंड टी केश, डैश, यश ...) करते हैं। में zshआप उपयोग करेंगे du -sch -- *(D)हालांकि, नहीं du -sch -- * .*
स्टीफन चेज़लस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.