উত্তর:
আমি 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
এলএসের কাছে ফাইলগুলি ফিল্টার করার প্রায় কোনও বিকল্প নেই: এটি কাজ নয়। ফিল্টারিং ফাইলগুলি সহজ ক্ষেত্রে (গ্লোব্বিংয়ের মাধ্যমে) শেলের কাজ এবং জটিল মামলার সন্ধানের কাজ।
LZsh এ , আপনি গ্লোব্বিং বাছাই করতে পারেন কেবল এমন ফাইলগুলি ধরে রাখতে যেগুলির আকার> ০ ( .কোয়ালিফায়ার নিয়মিত ফাইলগুলিতে সীমাবদ্ধ করে):
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।