जवाबों:
मुझे लगता है मैं find dirname -not -empty -lsGNU लगता है, का उपयोग करेंगे ।
lsऔर आपने इस्तेमाल किया find?) हालांकि मैंने इसे छोड़ दिया ... यह एक उचित समाधान है
इस के लिए एक नौकरी है खोजने ls शक्तिशाली पर्याप्त नहीं है।
find -maxdepth 1 -size +0 -print
-maxdepth 1 - यह बताता है कि केवल वर्तमान डायर की खोज करें, सभी सब डायर में देखने के लिए निकालें या संख्या को नीचे 2, 3 या अधिक स्तरों पर जाने के लिए बदलें।
-size +0यह 0बाइट्स की तुलना में बड़े आकार वाली फ़ाइलों की तलाश के लिए कहता है । 0आप चाहते हैं कि किसी भी आकार में बदला जा सकता है।
-print बताती है कि वह जिस फ़ाइल को ढूंढती है उसका पूरा रास्ता प्रिंट कर ले
संपादित करें:
देर से जोड़: आपको शायद -type fऊपर का स्विच भी जोड़ना चाहिए । यह बताता है कि फाइल्स को केवल फाइल्स ढूंढना है। और जैसा कि नीचे टिप्पणी में कहा गया है, -printस्विच की वास्तव में आवश्यकता नहीं है।
-maxdepth 1पहले जगह देनी चाहिए -size +0। -printडिफ़ॉल्ट क्रिया भी है, इसलिए इसकी आवश्यकता नहीं है।
findक्या वैध विकल्प हैं और वे कहां जा सकते हैं, इसके संदर्भ में बहुत भिन्नता के कार्यान्वयन । यदि आप पहले डालते हैं तो GNU find(जो सामान्य रूप से सामान्य है) एक चेतावनी का उत्पादन करेगा । -size-maxdepth
फ़ाइलों को फ़िल्टर करने के लिए Ls के पास लगभग कोई विकल्प नहीं है: यह इसका काम नहीं है। फ़ाइलों को फ़िल्टर करना सरल मामलों (ग्लोबिंग के माध्यम से) के लिए शेल का काम है और जटिल मामलों के लिए खोज का काम है।
Zsh में, आप ग्लोबिंग Lक्वालिफायर को केवल उन्हीं फाइलों को बनाए रखने के लिए रख सकते हैं जिनका आकार> 0 है ( .क्वालीफायर नियमित फाइलों तक सीमित है):
ls *(.L+0)
अन्य गोले के उपयोगकर्ताओं को खोजने का उपयोग करना चाहिए। GNU खोज के साथ (जैसा कि ज्यादातर लिनक्स पर पाया जाता है):
find -maxdepth 1 -type f ! -empty -exec ls {} +
POSIX- संगत तरीका है:
find . -type f -size +0c -exec ls {} + -o -name . -o -prune
यदि lsकेवल एक उदाहरण नहीं था और आप केवल दृश्य निरीक्षण का इरादा रखते थे, तो आप आकार के आधार पर छाँट सकते थे ls -S:।