ইউনিক্স সিস্টেমের প্রতিটি ডিরেক্টরিতে (এবং সম্ভবত প্রতিটি অন্যান্য সিস্টেমেও) কমপক্ষে দুটি ডিরেক্টরি এন্ট্রি থাকে। এগুলি .
(বর্তমান ডিরেক্টরি) এবং ..
(মূল ডিরেক্টরি) directory রুট ডিরেক্টরিগুলির ক্ষেত্রে, এটি একই স্থানে নির্দেশ করে তবে অন্য কোনও ডিরেক্টরিতে এগুলি পৃথক। আপনি আপনার নিজের জন্য এই দেখতে ব্যবহার করতে পারেন stat
, pwd
এবং cd
(লিনাক্সের দিকে) কমান্ড:
$ cd /
$ stat . .. bin sbin | grep Inode
Device: 802h/2050d Inode: 2 Links: 27
Device: 802h/2050d Inode: 2 Links: 27
Device: 802h/2050d Inode: 548865 Links: 2
Device: 802h/2050d Inode: 2670593 Links: 2
$ pwd
/
$ cd ..
$ pwd
/
$
লক্ষ্য করুন bin
এবং এর sbin
প্রতিটিটির সাথে দুটি লিঙ্ক রয়েছে। একটি হ'ল মূল ডিরেক্টরিতে ডিরেক্টরি এন্ট্রি, এবং অন্যটি .
সেই ডিরেক্টরিতে প্রবেশকরণ।
ls
পাইপ দিয়ে ব্যবহার করা wc -l
ls এর আউটপুটে লাইনের সংখ্যা গণনা করার জন্য একটি সহজ কৌশল। অনুমানটি হ'ল প্রতিটি ফাইল বা ডিরেক্টরি আউটপুটে ঠিক একটি লাইন দখল করে। GNU ls will, যখন আউটপুটটি একটি নন-টার্মিনাল হয়, স্বয়ংক্রিয়ভাবে এটি করবে; -1
স্পষ্টভাবে আচরণটি চালু করার জন্য অন্যদের বিকল্পের প্রয়োজন হতে পারে । wc -l
কেবল তার ইনপুটটিতে লাইনগুলির সংখ্যা ( -l
) গণনা করে এবং আউটপুট দেয় ।
এই পদ্ধতির সমস্যাটি হ'ল লিনাক্সে এবং লিনাক্সে traditionতিহ্যগতভাবে ব্যবহৃত ফাইল সিস্টেমগুলিতে, ফাইল এবং ডিরেক্টরিগুলির নাম (তারা সত্যই এক এবং এই ক্ষেত্রে একই রকম) নতুন লাইন অক্ষর ধারণ করার অনুমতি পায় । এগুলির উপস্থিতিতে, উভয়ই পদ্ধতি বিচ্ছিন্ন হয় - বাস্তবে যখন সেগুলি হয় তখন ent এন্ট্রিগুলি দুটি বা ততোধিক এন্ট্রি হিসাবে গণ্য হবে।
যতক্ষণ আপনি জিএনইউ এলএস ব্যবহার করছেন, নতুন রেখাযুক্ত অক্ষর যুক্ত নামের সাথে কোনও ডিরেক্টরি এন্ট্রি নেই এবং ls
(যেমন উদাহরণস্বরূপ ls -a
) এর কোনও বিজোড় এলিয়াস নেই , উভয়ই বর্তমান (বা নির্দিষ্ট) ডিরেক্টরিতে ফাইল এবং ডিরেক্টরিগুলির সংখ্যা নির্ধারণ করবে। বেশিরভাগ লোকের পক্ষে এটি যথেষ্ট ভাল তবে সাধারণ ক্ষেত্রে এটি বৈধ নয় ।
ডিরেক্টরী এন্ট্রি নামগুলিতে আপনার যদি অস্বাভাবিক অক্ষরগুলি (প্রাথমিকভাবে নিউলাইনগুলি) সঠিকভাবে পরিচালনা করতে হয় তবে আমি -b
তাদের পালাতে ls এর বিকল্পটি ব্যবহার করার পরামর্শ দিই । ls -1bA
প্রতিটি ডিরেক্টরি এন্ট্রি নামটি তার নিজস্ব লাইনে মুদ্রণ করবে, অস্বাভাবিক অক্ষরগুলি এড়িয়ে চলবে (সুতরাং প্রতিটি ডিরেক্টরি এন্ট্রি এক হিসাবে দেখা যাবে), কোনও ডটফাইলস এবং-ডিরেক্টরি সহ। উপর ট্যাক wc -l
সম্পূর্ণ কমান্ড লাইন এর জন্য ls -1bA | wc -l
(কিন্তু উপেক্ষা করা যা ফাইল এবং বর্তমান ডিরেক্টরির মধ্যে ডিরেক্টরি সংখ্যা রিপোর্ট হবে .
এবং ..
; যে পার্থক্য -a
এবং -A
), কিন্তু কোনো সাবডিরেক্টরি মধ্যে নামা। আপনি যদি কোনও ডটফাইলগুলি মোটের সাথে গণনা করতে না চান তবে কেবলমাত্র -A
প্যারামিটারটি বাদ দিন ls
।