লিনাক্স ব্যবহার করে আমি কীভাবে কোনও ড্রাইভে ফোল্ডারের সংখ্যা গণনা করতে পারি?


24

আমার একটি বাহ্যিক এইচডিডি এমনভাবে সংগঠিত করা দরকার যাতে এর উপরে 500 ফোল্ডার নেই। উবুন্টুর "বৈশিষ্ট্যগুলি" ফলকটি কেবল ফাইল গণনা দেখায়, ফোল্ডার গণনাটি নয়।

একটি সাধারণ কমান্ড লাইন আছে যা আমাকে উপ-ডিরেক্টরিগুলির সংখ্যা বলবে?

আমার পুনরাবৃত্তভাবে গণনা করা দরকার এবং ড্রাইভটি একটি বাহ্যিক এইচডিডি মাউন্ট করা আছে /media/MUSIC/। এটি একটি গাড়ী স্টেরিও সিস্টেমের জন্য যার ডকুমেন্টেশন বলে যে এটি কেবল প্রথম 500 ফোল্ডারটি পড়ে।

উত্তর:


20

আপনার ড্রাইভে নেভিগেট করুন এবং কেবল সম্পাদন করুন

ls -lR | grep ^d | wc -l

এটি 3 বছর আগে আমি যে উত্তরটি স্বীকার করেছি তার চেয়ে আরও সঠিক নম্বর সরবরাহ করে বলে মনে হয়। এটি আমি যে ডিরেক্টরিতে ছিলাম সেখানে এটি গণনা করেছিলাম যেখানে এটি করা হয়নি।
ডিন রথ

আমি পাশাপাশি বিভিন্ন সংখ্যা দেখতে, কিন্তু খুব আলাদা না।
এসপিআরবিএনএন

ব্যক্তিগতভাবে আমি grep -cওভার পছন্দ wc -l। সম্ভবত এটি কেবল আমি
ম্যাক্সিম_অনাইটেড

1
কোনও ডিরেক্টরি এন্ট্রি সিকোয়েন্স \nd( \nএনএল অক্ষরটি কোথায় ) থাকে তা উপরের পরিমাণগুলি ছাড়িয়ে যাবে ।
টবি স্পিড

1
টবি ঠিক আছে, lsআউটপুট পাইপ দেওয়ার কথা নয় । তবুও এটি অনেক ধীর হবে কারণ এটি পুরো গাছটিকে আউটপুট দিতে হবে এবং তারপরে
গ্রেপ

37

উপ-ডিরেক্টরি সহ মোট ফোল্ডার সন্ধান করবেন?

find /mount/point -type d | wc -l

... বা রুট ডিরেক্টরিতে সমস্ত ফোল্ডার সন্ধান করবেন (উপ-ডিরেক্টরি অন্তর্ভুক্ত নয়)?

find /mount/point -maxdepth 1 -type d | wc -l

প্রথমটি হ'ল আমি ঠিক পরে যাচ্ছি। ধন্যবাদ!
ডিন রথ

@ ডিয়ান: হ্যাঁ, আমি এটির আগেও আমার সংগীত সংগ্রহের ডিরেক্টরিগুলি গণনা করার জন্য ব্যবহার করেছি। :) বৌদ্ধিক অধিকারের জন্য, আপনার এমপি 3 গণনা করুন: সন্ধান / মাউন্ট / পয়েন্ট-টাইপ এফ | গ্রেপ -i এমপি 3 |
ডাব্লুসি-

1
@Dean: হাঁ, আমি জানি না খোঁজ সিনট্যাক্স চট করে, কিন্তু আমি সাধারণত ব্যবহার করতে চাই , grep -v জন্য যে: খোঁজ / mount / পর্তুগীজ ভাষায় টাইপ চ | grep -vi mp3 | grep -vi wav | ডাব্লুসিএল ... (এবং <i> </i> মন্তব্যগুলিতে কাজ করে না, *foo*
ইটালিকাইজ

2
@ ডিয়ান: আমি মনে করি আপনি কেবল find /path -not -iname '*.mp3' | wc -lএমপি 3 ফিল্টার করতে ব্যবহার করতে বা এমপি 3 এবং ডাব্লুএইভি উভয়ই পেতে চাইবেনfind /path -not -iname '*.mp3' -not -iname '*.wav' | wc -l
কোয়াকোটা কোটসোট

1
এটির পাশাপাশি ফোল্ডারগুলিও উপেক্ষা করার জন্য- টাইপ এফ যুক্ত করা দরকার তবে সংযুক্তি! আমি সবেমাত্র এম 4 এ ফাইলগুলির পুরো গুচ্ছটি পেয়েছি যার সম্পর্কে আমার কোনও ধারণা ছিল না ... ধন্যবাদ!
ডিন রথ

4

নতুন রেখাগুলি ডিরেক্টরি নামের বৈধ অক্ষর। আমি findপ্রতিটি ডিরেক্টরি খুঁজে পাওয়া খালি লাইন মুদ্রণ এবং তারপর wcসেই লাইন গণনা দেওয়া পরামর্শ দিচ্ছি ।

find /mount/point -type d -printf '\n' | wc -l

3

নিম্নলিখিতগুলি দেখুন [নীচে দেখুন]:

ls -1 -p | grep "/" | wc -l

এটি সাবডিরেক্টরিগুলির আইটেমগুলির জন্য পিছনে স্ল্যাশ সহ বর্তমান ডিরেক্টরিটির একটি-কলামের তালিকা মুদ্রণ করবে, তারপরে স্ল্যাশ সহ লাইনগুলি গণনা করবে।

সম্পাদনা: আপনার সম্ভবত কোয়াকোটা কোয়েক্সোটের উত্তরটি নিয়ে যাওয়া উচিত, কারণ এটি কিছুটা স্পষ্ট, তবে আমি আমার সংশোধন করেছি (কোয়ের পরামর্শগুলি আমলে নেওয়ার পরে)।

ls -Rp | grep "/$" | wc -l

পুনরাবৃত্ত হওয়ার জন্য -আর যুক্ত করতে হবে (উল্লেখ করতে ব্যর্থ হওয়ার জন্য দুঃখিত), এবং ls এর পথ নির্দিষ্ট করতে হবে, তবে হ্যাঁ, এটি কাজ করে: ls -1 -p -R / মিডিয়া / মিউজিক / | গ্রেপ "/" | WC -l ধন্যবাদ!
ডিন রাথার

কোয়েক্সোটের এই পরামর্শ এবং কোয়াকোট উভয়ের চেষ্টা করার পরে, আমি 2 টি আলাদা ফলাফল পেয়েছি ... আমি অন্যটিকে বিশ্বাস করতে আগ্রহী। যাই হোক ধন্যবাদ!
ডিন রথ

1
আপনার দরকার নেই -1যেহেতু এলএস পাইপ সনাক্ত করবে এবং কলামগুলি বিন্যাস করবে না। এছাড়াও আপনি এর সাথে পুনরাবৃত্ত তালিকাগুলি দখল করতে পারেন -R, তবে তারপরে আপনি কেবল গ্রেপ্তার করতে চান "/$"কেবলমাত্র পিছনে থাকা স্ল্যাশগুলির সাথে (বা গণনাটি বন্ধ থাকবে)। চূড়ান্ত সংস্করণ:ls -Rp | grep "/$" | wc -l
কোয়েট কুইসোট

1
খোঁজ সংস্করণ আমি পোস্ট গণনা করা হবে .(অর্থাত /mount/point, তার গণনা মধ্যে) আমার উপরে মন্তব্যে সংস্করণ না। ঐ সংখ্যা, 1 দ্বারা পৃথক হউক না কেন আপনি ব্যবহার করতে পারে /mount/point/*মধ্যে খোঁজ কমান্ড যে সংশোধন করার (অভিমানী লুকানো ডট ডিরেক্টরি)।
কোয়াকোট কোয়েসোট

আপনি কেন দুটি পৃথক ফলাফল পেয়েছেন তা নিশ্চিত নই, তবে @ কোয়াকের পদ্ধতিতে "লুকানো" ডিরেক্টরিগুলি অন্তর্ভুক্ত থাকবে (অর্থাত্ '।' দিয়ে শুরু হওয়া)।
স্টান্টমাউস

1

আমি নির্দিষ্ট পরিস্থিতিতে পুনরাবৃত্তকারী ফাইল গণনা দ্রুত করার জন্য ffcnt লিখেছি : ঘূর্ণন ডিস্ক এবং ফাইল সিস্টেমগুলি যা মাপিং মাপিংকে সমর্থন করে।

এটি তুলনায় lsবা findভিত্তিক পদ্ধতির চেয়ে দ্রুততার ক্রম হতে পারে


1

যখন বিশাল সংখ্যক ডিরেক্টরি থাকে, তখন সরঞ্জামগুলির মতো সরঞ্জামগুলি treeশেষ করতে বা এমনকি স্তব্ধ করতে অনন্তকাল নিতে পারে, তাই আপনি আরও কার্যকর কিছু ব্যবহার করতে চাইতে পারেন।

যে ডিরেক্টরিগুলি আমি ভাবতে পারি তার মধ্যে সবচেয়ে কার্যকরী উপায় হ'ল নিম্নলিখিতগুলি, যেহেতু পুরো পথ এবং ফাইলের নামের পরিবর্তে পাওয়া প্রতিটি ফোল্ডারের জন্য findকেবল একটি মুদ্রণ করবে .এবং wcকেবলমাত্র অক্ষরের সংখ্যা নিয়ে পুনরাবৃত্তি করতে হবে:

find /mount/point -type d -printf '.' |wc -c

/mount/pointগণনা থেকে নিজেকে বাদ দিতে এবং কেবলমাত্র সাব ডিরেক্টরিগুলি গণনা করতে:

find /mount/point -mindepth 1 -type d -printf '.' |wc -c

1

আমি du --inodesদরকারী খুঁজে পেয়েছি , তবে duএটির কোন সংস্করণের প্রয়োজন তা আমি নিশ্চিত নই । উবুন্টু 17.10 এ, নিম্নলিখিত কাজ করে:

du --inodes      # all files and subdirectories
du --inodes -s   # summary
du --inodes -d 2 # depth 2 at most

সংযুক্ত ইনোডের | sort -nrসংখ্যা অনুসারে অবতরণকে সাজানোর সাথে একত্রিত করুন ।


0

আমি ডিরেক্টরি গণনা সহ টানতে গাছ ব্যবহার করতে চাই

tree -d -R -fi --noreport | wc -l

অথবা, ফোল্ডারগুলির বেশিরভাগ প্রদর্শন করতে অসুস্থ ব্যবহারের সন্ধান রয়েছে with

find . -type d -printf "%h\n" | cut -d/ -f-2 | sort | uniq -c | sort -rn

বা এর মতো কিছু: গাছ |
গ্রেপ

-2

বর্তমান ডিরেক্টরিতে ফোল্ডার এবং ডিরেক্টরি সন্ধান করতে

আপনার টার্মিনালে নিম্নলিখিত কমান্ডটি টাইপ করুন

echo */ | wc
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.