/ প্রকোপ / স্ব হ'ল সিনট্যাকটিক চিনি। এটি / প্রো / / কে প্রতিরোধ করার শর্টকাট এবং গেটপিড () সিস্কেল (বিপদে প্রবেশযোগ্য as হিসাবে অ্যাক্সেসযোগ্য) এর ফলাফল। এটি শেল স্ক্রিপ্টিংয়ের ক্ষেত্রে বিভ্রান্ত হয়ে উঠতে পারে, কারণ অনেকগুলি বিবৃতি অন্যান্য প্রক্রিয়াগুলিকে অনুরোধ করে, নিজস্ব পিআইডি দিয়ে সম্পূর্ণ ... পিআইডি যা মৃত প্রক্রিয়াগুলি প্রায়শই না বোঝায়। বিবেচনা:
root@vps01:~# ls -l /proc/self/fd
total 0
lrwx------ 1 root root 64 Jan 1 01:51 0 -> /dev/pts/0
lrwx------ 1 root root 64 Jan 1 01:51 1 -> /dev/pts/0
lrwx------ 1 root root 64 Jan 1 01:51 2 -> /dev/pts/0
lr-x------ 1 root root 64 Jan 1 01:51 3 -> /proc/26562/fd
root@vps01:~# echo $$
593
'/ বিন / ls' ডিরেক্টরিটির পথটিকে মূল্যায়ন করবে / / proc / 26563 হিসাবে সমাধান করবে, যেহেতু এটিই প্রক্রিয়াটির পিআইডি - নতুন নির্মিত / বিন / এলএস প্রক্রিয়া - যা ডিরেক্টরিতে থাকা বিষয়বস্তু পড়ে। তবে পাইপলাইনের পরবর্তী প্রক্রিয়াটি, শেল স্ক্রিপ্টিংয়ের ক্ষেত্রে, বা প্রম্পট ফিরে আসার সময়ে, ইন্টারেক্টিভ শেলের ক্ষেত্রে, পথটি আর বিদ্যমান নেই এবং তথ্য আউটপুট একটি অস্তিত্বহীন প্রক্রিয়া বোঝায়।
এটি কেবল বাহ্যিক কমান্ডের ক্ষেত্রেই প্রযোজ্য, তবে (শেল নিজেই তৈরির বিপরীতে প্রকৃত নির্বাহযোগ্য প্রোগ্রাম ফাইলগুলি)। সুতরাং, আপনি যদি বাহ্যিক প্রক্রিয়া / বিন / এলএসে পথের নামটি লেখার পরিবর্তে ডিরেক্টরিটির বিষয়বস্তুগুলির একটি তালিকা পেতে ফাইলের নাম গ্লোব্বিং ব্যবহার করেন তবে আপনি বিভিন্ন ফলাফল পাবেন:
root@vps01:~# ls /proc/self/fd
0 1 2 3
root@vps01:~/specs# echo /proc/self/fd/*
/proc/self/fd/0 /proc/self/fd/1 /proc/self/fd/2 /proc/self/fd/255 /proc/self/fd/3
প্রথম লাইনে, শেলটি একটি নতুন প্রক্রিয়া তৈরি করেছিল, '/ bin / ls', এক্সিকিউটি () সিস্টেমের মাধ্যমে, "/ proc / self / fd" কে আরগভ [1] হিসাবে পাস করে। '/ বিন / এলএস', এরপরে, ডিরেক্টরিটি / proc / self / fd খুলুন এবং পড়ুন, তারপরে মুদ্রণ করুন, এটির উপর এটি পুনরুক্ত হয়।
দ্বিতীয় লাইনটি ফাইলের নামের তালিকা প্রসারিত করতে পর্দার পিছনে গ্লোব () ব্যবহার করে; প্রতিধ্বনির জন্য এগুলি স্ট্রিংগুলির অ্যারে হিসাবে পাস করা হয়েছে। (সাধারণত একটি অভ্যন্তরীণ কমান্ড হিসাবে প্রয়োগ করা হয়, তবে প্রায়শই একটি / বিন / প্রতিধ্বনি বাইনারি থাকে ... তবে সেই অংশটি আসলে অপ্রাসঙ্গিক, কারণ প্রতিধ্বনি কেবল স্ট্রিং নিয়েই কাজ করে যা পথের সাথে সম্পর্কিত কোনও সিস্টেমে ফিড করে না))
এখন, নিম্নলিখিত কেসটি বিবেচনা করুন:
root@vps01:~# cd /proc/self/fd
root@vps01:~# ls
0 1 2 255
এখানে, শেল, / bin / ls এর পিতামাতার প্রক্রিয়াটি, তার বর্তমান ডিরেক্টরিটি / proc / স্বের একটি উপ-ডিরেক্টরি তৈরি করেছে । সুতরাং, আপেক্ষিক পথের নামগুলি এর দৃষ্টিকোণ থেকে মূল্যায়ন করা হয়। আমার সেরা অনুমান যে এটি পসিক্স ফাইল শব্দার্থবিদ্যার সাথে সম্পর্কিত যেখানে আপনি কোনও ওপেন ফাইল বর্ণনাকারী সহ কোনও ফাইলে একাধিক হার্ড লিঙ্ক তৈরি করতে পারেন । এবার, / বিন / এলএস একই প্রতিপাদনা / প্রকো / $$ / এফডি / * এর সাথে আচরণ করে।
/proc/self
অবশ্যই মূল্যায়ন করে ।