ফোল্ডার এবং সাব ফোল্ডারগুলিতে ফাইলের সংখ্যাটি সন্ধান করবেন?


142

আমি একটি ফোল্ডারের অধীনে ফাইলগুলির সংখ্যার এবং তার সমস্ত সাব ফোল্ডারগুলির মোট সংখ্যা গণনা করতে চাই।

উত্তর:


221

কিছু হতে পারে

find . -type f | wc -l

কৌতুক করবে। প্যারেন্ট ফোল্ডার থেকে কমান্ড চেষ্টা করুন।


3
নামগুলিতে একটি নতুন লাইন থাকা ফাইলগুলিতে সমাধান ব্যর্থ হবে।
— ব্যবহারকারী অজানা

2
@ ব্যবহারকারী অজানা:find . -type f -ls | wc -l
— ব্যবস্থা করুন

1
আরও দ্রুত:find . -type f -print0 | tr -d -c '\0' | wc -c
— সাজান

13
@ অ্যারেঞ্জ: আরও দ্রুত: find . -type f -printf . | wc -c- আমি আমার-এক্সেক প্রতিধ্বনির পরিবর্তে আমার সমাধানের জন্য মুদ্রণ গ্রহণ করি।
— ব্যবহারকারী অজানা

1
এই কমান্ডটি আমার ক্ষেত্রে
— কৌতুকের

27

treeকমান্ডটি ব্যবহার করুন । আপনার treeপ্যাকেজ ইনস্টল করার প্রয়োজন হতে পারে ।

এটি প্রদত্ত ফোল্ডারের নীচে সমস্ত ফাইল এবং ফোল্ডার তালিকাবদ্ধ করবে এবং শেষে একটি সারাংশ তালিকাবদ্ধ করবে।


14

বর্তমান ডিরেক্টরিটির মূলটিতে ফাইলগুলি (একটি এক্সটেনশন ছাড়াই ফাইলগুলিও) গণনা করতে, ব্যবহার করুন:

ls -l | grep ^- | wc -l

বর্তমান ডিরেক্টরিটির মূল থেকে পুনরাবৃত্তভাবে ফাইলগুলি (একটি এক্সটেনশন ছাড়াই ফাইলগুলি) গণনা করতে , ব্যবহার করুন:

ls -lR | grep ^- | wc -l

1
যারা লুকানো ফাইল গণনা করবে না।
— ব্যবহারকারী অজানা

সত্য। আমি আপনার উত্তরটিকে সমাধান হিসাবে গ্রহণ করতে ও ব্যবহার করতে আরও ঝোঁক।
— ব্যবহারকারীর 85335

13

দ্রুত এবং সহজতম উপায়, ব্যবহার করা tree। এর গতি আপনার আউটপুট টার্মিনাল দ্বারা সীমাবদ্ধ, সুতরাং আপনি যদি ফলাফলটি পাইপ করেন তবে আপনি tail -1তাত্ক্ষণিক ফলাফল পাবেন। -Lবিকল্পটি ব্যবহার করে আপনি কোন ডিরেক্টরি স্তরটি ফলাফল পছন্দ করতে চান তাও নিয়ন্ত্রণ করতে পারেন । বর্ণযুক্ত আউটপুট জন্য, ব্যবহার করুন -C। উদাহরণ স্বরূপ:

$ tree share/some/directory/ | tail -1
558 directories, 853 files

$ tree -L 2 share/some/directory/ | tail -1
120 directories, 3 files

যদি এটি ইতিমধ্যে সেখানে না থাকে তবে আপনি এটি এখানে পেতে পারেন ।


9
find -type f -printf . | wc -c

সন্ধানের আউটপুট লাইনগুলি গণনা করবেন না, কারণ 99 টি নতুন লাইনের সমন্বিত ফাইলের নামগুলি 100 টি ফাইল হিসাবে গণনা করবে।


4
নতুন লাইনযুক্ত ফাইলের নামগুলি একটি অবিশ্বাস্যভাবে বিরল প্রান্তের কেস।
— অসন্তুষ্ট গোয়াট

8
@ ডিসগ্রান্টলডগোট: সুতরাং একটি ত্রুটি খুঁজে পাওয়া অত্যন্ত কঠিন।
— ব্যবহারকারী অজানা

আমি একটি ভাল প্রান্ত মামলা পছন্দ করি, বিশেষত বহু বছর পরে।
— user38537


1

গাছের চেয়ে তাত্পর্যপূর্ণ বলে মনে হচ্ছে সুতরাং আমি বর্তমান কর্মরত ডিরেক্টরিগুলির প্রতিটি ডিরেক্টরি (সিডাব্লুডিতে ফাইলগুলি উপেক্ষা করে) ডিরেক্টরিগুলিতে স্থান দেওয়ার অনুমতি দিয়ে ফাইলগুলি গণনা করতে নীচে ব্যবহার করেছি:

ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done


আউটপুট পার্সিং lsকরা খুব খারাপ ধারণা।
— সৌরভসি

দুর্দান্ত কোড, আমি কীভাবে আউটপুট লাইনগুলিকে ফাইলগুলির বর্ধমান বা হ্রাসের গণনায় বলতে পারি
— নাইটক্রোলার

0

তুমি ব্যবহার করতে পার find . | wc -l

find .আপনার বর্তমান ফোল্ডারে শুরু হওয়া সমস্ত ফাইল এবং ফোল্ডার এবং থেরের সামগ্রীগুলি তালিকাভুক্ত করবে।
wc -lফলাফল ফলাফল গণনা


এই সমাধানটি ফোল্ডারগুলিও গণনা করে, আমি এই চিহ্নটি দিয়েছিলাম যে এটি আমার উপলক্ষে মেলে যা আমি তাদের মধ্যে গণনা করতে চাই না :)
— টপলেস

নামগুলিতে একটি নতুন লাইন থাকা ফাইলগুলিতে সমাধান ব্যর্থ হবে।
— ব্যবহারকারী অজানা

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