উত্তর:
আমি find dirname -not -empty -ls
জিএনইউ খুঁজে ধরে ধরে ব্যবহার করব ।
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
কার্যকর বৈধ বিকল্পগুলি এবং তারা কোথায় যেতে পারে তার ক্ষেত্রে এর প্রয়োগগুলি অনেক বেশি পরিবর্তিত হয়। আপনি যদি আগে রাখেন তবে জিএনইউ find
(যা অত্যন্ত ভয়ঙ্কর সাধারণ) একটি সতর্কতা উত্পন্ন করবে । -size
-maxdepth
এলএসের কাছে ফাইলগুলি ফিল্টার করার প্রায় কোনও বিকল্প নেই: এটি কাজ নয়। ফিল্টারিং ফাইলগুলি সহজ ক্ষেত্রে (গ্লোব্বিংয়ের মাধ্যমে) শেলের কাজ এবং জটিল মামলার সন্ধানের কাজ।
L
Zsh এ , আপনি গ্লোব্বিং বাছাই করতে পারেন কেবল এমন ফাইলগুলি ধরে রাখতে যেগুলির আকার> ০ ( .
কোয়ালিফায়ার নিয়মিত ফাইলগুলিতে সীমাবদ্ধ করে):
ls *(.L+0)
অন্যান্য শেল ব্যবহারকারীদের অবশ্যই ব্যবহারগুলি ব্যবহার করা উচিত। জিএনইউ অনুসন্ধানের সাথে (যেমন বেশিরভাগ লিনাক্সে পাওয়া যায়):
find -maxdepth 1 -type f ! -empty -exec ls {} +
একটি পসিক্স-কমপ্লায়েন্ট উপায় হ'ল:
find . -type f -size +0c -exec ls {} + -o -name . -o -prune
তাহলে ls
শুধু একটি উদাহরণ ছিল না এবং আপনি নিছক চাক্ষুষ পরিদর্শন মনস্থ করা, আপনি আকার দ্বারা বাছাই করতে পারে: ls -S
।