का उपयोग करते हुए - डु कमांड के साथ


66

यह शायद कुछ बुनियादी है लेकिन मैं इसे काम करने में सक्षम नहीं हूं। मैं डीयू का उपयोग करने की कोशिश कर रहा हूं ताकि कुल निर्देशिकाओं की कुछ फाइलें मिल सकें। मुझे एक विशिष्ट निर्देशिका को बाहर करने की आवश्यकता है, जिसे uploadsहर निर्देशिका नहीं कहा जाता है uploads। उदाहरण के लिए, मेरी फ़ाइल संरचना कुछ इस प्रकार है:

/store
  /uploads
    /junk_to_ignore
    /more_junk_to_ignore
  /user_one
    /uploads
  /user_two

मैं निम्नलिखित कमांड चला सकता हूं:

du -ch --exclude=uploads* 

और यह मुझे सभी "अपलोड" निर्देशिकाओं का फ़ाइल आकार घटा देता है। हालाँकि, कुछ विशेष निर्देशिकाओं (और इसके सभी उप-निर्देशिकाओं) को बाहर करने की कोशिश में मैं असफल रहा। मैंने विविधताओं की कोशिश की है:

du -ch --exclude=./uploads*
du -ch --exclude='/full/path/to/uploads/*'

लेकिन यह पता लगाने के लिए प्रतीत नहीं कर सकते। मैं एक विशिष्ट निर्देशिका को कैसे निकालूं?


username: store$ du -ch --exclude=./uploadsमेरे लिए (वाइल्डकार्ड के बिना) स्टोर निर्देशिका के भीतर से काम किया। क्या आप उस कमांड को स्टोर फोल्डर के भीतर और बाहर से चला रहे हैं? और इसे सापेक्ष पथ होना चाहिए (जो देखता है / प्रिंट करता है), निरपेक्ष नहीं।
केविन

जवाबों:


88

आप लगभग इसे पा चुके हैं :)

du -ch --exclude=./relative/path/to/uploads

अंत में कोई तारांकन नोट करें । तारांकन का अर्थ है "अपलोड" के तहत सभी उपनिर्देशिकाएं छोड़ दी जानी चाहिए - लेकिन उस निर्देशिका में सीधे फ़ाइलें नहीं।


4
अजीब ... डॉट के साथ वाक्य रचना ( du -sb --exclude=./relative/path/to/uploads) मेरे लिए काम नहीं करता है। यह करता है:du -sb --exclude relative/path/to/uploads
Nux

4
@ नक्स शायद आपका स्वाद du। मेरा (OSX) भी नहीं है --exclude, इसके बजाय -I mask"निर्दिष्ट मास्क से मेल खाती फाइलों और निर्देशिकाओं को अनदेखा करें"। अपने कामकाजी उदाहरण में, आप भी चूक जाते हैं =, जिससे मुझे लगता है कि यह आपके duथोड़े से duसम्मानित होने का सिर्फ एक संस्करण है ।
फाट्स्कैट

हां [OSX] [1] संस्करण [Linux du] [2] का काफी सरल संस्करण है। [1]: developer.apple.com/library/mac/documentation/Darwin/Reference/... [2]: linux.die.net/man/1/du
Nux

क्या होगा यदि मैं उदाहरणों के लिए कई निर्देशिकाओं को बाहर करना चाहता हूँ, यहाँ निर्देशिकाओं को छोड़कर junk_to_ignore और निर्देशिकाओं को अपलोड करता है?
किरण के तेलुकुंता

यह एक सापेक्ष पथ के साथ क्यों काम करता है, लेकिन एक पूर्ण पथ नहीं है? बहुत अजीब!
निक

8

कई निर्देशिकाओं को बाहर करने के लिए, बस --exclude ध्वज को फिर से पास करें।

du -ch --exclude=relative/path/to/uploads --exclude other/path/to/exclude

1
तुम भी का उपयोग करेंdu -ch --exclude={relative/path/to/uploads,other/path/to/exclude}
हेज़ो थेलेन


1

यदि आपको macOS पर होना है, तो आप निम्न आदेश के साथ GNU Coreutils स्थापित करते हैं।

brew install coreutils

कोरुटिल्स द्वारा स्थापित अधिकांश कमांड द्वारा उपसर्ग किए गए हैं g, क्योंकि उनके पास macOS पर पूर्वस्थापित बीएसडी नाम है। तब आप निम्न कार्य कर सकते हैं।

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