দুর্ভাগ্যক্রমে এই সৌম্য সমস্যাটি এমনভাবে সমাধান করা কঠিন যা সমস্ত ফাইলের নাম সমর্থন করে এবং বহনযোগ্য। এটি নিরাপদ (এটি লুকানো ফাইলগুলি, স্পেসগুলি, ড্যাশগুলি এমনকি নিউলাইনগুলি সহ পাথগুলি পরিচালনা করে) এবং পসিক্স সামঞ্জস্যপূর্ণ :
find /path/to/directory -mindepth 1 -type f -name "*.mp4" -printf x | wc -c
আপনি যদি এটি পুনরাবৃত্তি না করতে চান তবে কেবল যুক্ত করুন -maxdepth 1
।
আপনার ls
আউটপুট পার্স করা উচিত নয় ।
টেস্ট:
$ cd -- "$(mktemp -d)"
$ touch -- -foo.mp4 .bar.mp4 .bat.mp4 'baz.mp4
> ban.mp4'
$ find . -mindepth 1 -type f -name "*.mp4" -exec printf x \; | wc -c
4
গৃহীত উত্তরের সাথে তুলনা করুন :
$ ls -lR ./*.mp4 | wc -l
3
বা অন্যান্য পরামর্শ:
$ find . -name "*.mp4" | wc -l
5
$ ls -1 *.mp4 | wc -l
ls: invalid option -- '.'
Try 'ls --help' for more information.
0
$ find . -name "*.mp4" | wc -c # Answer fixed at a later time
51
$ find . -name "*.mp4" | wc -l
5
$ find . | grep -i ".mp4$" | wc -l
5
$ ls . | grep ".mp4$" | wc -l
3
ls -1
এই ক্ষেত্রে নতুন লাইন অক্ষরগুলি পরিচালনা করেls
আউটপুট পার্স করার ক্ষেত্রে বোধগম্য । চিহ্নিত করাটি -আর পতাকা ব্যবহারের জন্য ভুল।