ফাইলগুলি বিচ্ছিন্ন করুন এবং তাদের উপর wc চালান
কি wc -l /etc/*
করে যে ডিরেক্টরিতে *
সমস্ত আইটেম প্রসারিত হবে /etc/
। সুতরাং লক্ষ্যটি তখন ফাইলগুলি বিচ্ছিন্ন করা এবং wc
সেগুলি সম্পাদন করা। এটি করার বিভিন্ন উপায় রয়েছে।
পরীক্ষার সাথে লুপের জন্য
test
কমান্ড, বা আরো ঘন ঘন সংক্ষিপ্ত যেমন [
ব্যবহার করা যেতে পারে কিনা একটি আইটেম তাই মত একটি নিয়মিত ফাইল দেখুন:
[ -f "$FILE" ]
সুতরাং আমরা যা করতে পারি তা হ'ল সমস্ত আইটেমের মধ্যে পুনরাবৃত্তি হবে এবং কেবলমাত্র উপরের কমান্ডটি সত্য হলেই তা /etc/
চালানো wc
হবে। তাই ভালো:
for i in /etc/*; do [ -f "$i" ] && wc -l "$i" ; done
অনুসন্ধান
আমরা ব্যবহার করতে পারেন find
সঙ্গে -maxdepth
, -type
এবং -exec
পতাকা
find /etc/ -maxdepth 1 \( -type f -o -type l \) -exec wc -l {} +
-maxdepth
ডিরেক্টরি কাঠামোতে কত গভীর যেতে হবে তা অবহিত করে; 1 এর মান মানে আমরা যে ডিরেক্টরিটি চাই সেগুলিতে কেবল ফাইলগুলি।
-type f
-o
সিবোলিক লিঙ্কগুলির জন্য (প্রতিনিধিত্ব করে type l
) নিয়মিত ফাইলগুলি অনুসন্ধান করতে, বা ( পতাকা দ্বারা উপস্থাপিত ) সন্ধান করতে বলে tells সেই সমস্ত ধার্মিকতা বন্ধনীগুলিতে আবদ্ধ হয়ে ()
পালিয়ে গেছে \
যাতে শেল তাদের find
অন্য কিছু না করে কমান্ডের অংশ হিসাবে ব্যাখ্যা করে ।
-exec COMMAND {} +
কাঠামোটি এখানে আমরা যে কোনও কমান্ড দেই তা চালায়, এটি +
সমস্ত পাওয়া ফাইলগুলি নেওয়ার নির্দেশ দেয় এবং সেগুলি কম্যান্ড লাইনে কমান্ড লাইন আর্গ হিসাবে স্টাফ করে।
মোট উত্পাদন করতে আমরা পাইপ আউটপুট tail
পছন্দ করতে পারে
$ find /etc/ -maxdepth 1 \( -type f -o -type l \) -exec wc -l {} + | tail -n 1
[sudo] password for xieerqi:
11196 total
সাইড নোট
wc -l /etc/* 2>/dev/null | tail -1
এলডি জেমসের জবাব অনুসারে, কেবল এটি ব্যবহার করা সহজ , তবে find
ফাইলের সাথে সম্পর্কিত ফাইলগুলির নাম প্রক্রিয়াকরণ এড়ানোর জন্য একটি অভ্যাসের অংশ হওয়া উচিত। এই বিষয়ে আরও তথ্যের জন্য ফাইলের নামগুলি কীভাবে সঠিকভাবে মোকাবেলা করতে হবে সেই প্রবন্ধটি পড়ুন