আমি প্রথমে অবাক হয়েছিলাম। তবে উত্তরগুলি পড়ার পরে, এবং কিছুটা তদন্ত করার পরে, এটি সহজ বলে মনে হচ্ছে। আমি এখানে যা পেয়েছি তা এখানে। (শেষ পর্যন্ত কোনও অবাক লাগেনি))
পুনর্নির্দেশের আগে স্টিডিন, স্টডআউট এবং স্ট্ডার একই ডিভাইসে সংযুক্ত হিসাবে প্রত্যাশিত।
#ctrl-alt-delor:~$
#↳ ll /dev/std*
lrwxrwxrwx 1 root root 15 Jun 3 20:58 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Jun 3 20:58 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Jun 3 20:58 /dev/stdout -> /proc/self/fd/1
#ctrl-alt-delor:~$
#↳ ll /proc/self/fd/*
lrwx------ 1 richard richard 64 Jun 30 19:14 /proc/self/fd/0 -> /dev/pts/12
lrwx------ 1 richard richard 64 Jun 30 19:14 /proc/self/fd/1 -> /dev/pts/12
lrwx------ 1 richard richard 64 Jun 30 19:14 /proc/self/fd/2 -> /dev/pts/12
অতএব সর্বাধিক পুনঃনির্দেশের পরে (এটি যদি স্ট্ডার হয়) পুনঃনির্দেশিত হয় না। stderr এখনও টার্মিনালের সাথে সংযুক্ত। সুতরাং এটি পড়তে পারে, কীবোর্ড ইনপুট পেতে।
অপ্রত্যাশিত দিকনির্দেশে ফাইলগুলি ব্যবহার করা বন্ধ করা হচ্ছে কেবলমাত্র কনভেনশন এবং পাইপগুলি একমুখী।
আরেকটি উদাহরণ, চেষ্টা করুন:
cat | less
এটি কোনও পৃষ্ঠার পরে ভুল হয়ে যায়, যখন less
টার্মিনালটি পড়ার চেষ্টা করে ( cat
এটি টার্মিনালটি পড়ার সাথে সাথে বিস্মিত হয় না )।
/dev/tty
এটি আরও রহস্যজনক, এটির কোনও লিঙ্ক নয় /proc/self
।
#ctrl-alt-delor:~$
#↳ ll /dev/tty
crw-rw-rw- 1 root tty 5, 0 Jun 29 09:18 /dev/tty
আমার বর্তমান নিয়ন্ত্রণকারী টার্মিনাল এবং `/ dev / tty` এর মধ্যে কী সম্পর্ক রয়েছে তা দেখুন ? একটি ব্যাখ্যা জন্য। লিঙ্কটির জন্য @ স্টেফেনকিটকে ধন্যবাদ।
/dev/tty
, এই প্রশ্নটি দেখুন ।