স্ট্যান্ডার্ড আউটপুট রিডিরেকশন
আমরা আগের লেসনে জেনেছি স্ট্যান্ডার্ড আউটপুটকে stdout নামে একটি ফাইলে পাঠানো হয়। আমরা টার্মিনালে যা দেখি তা সেখান থেকেই আসে। এখন আমরা যদি সেটা stdout না পাঠিয়ে অন্য কোনো ফাইল বা প্রোগ্রামে পাঠাতে চাই সেটা সম্ভব। প্রথমে আমরা সাধারন একটা কমান্ডে কি হয় দেখি:
আপনি দীর্ঘ একটি লিস্ট দেখবেন এর /usr/bin/ এর কন্টেন্ট এর। অনেক সময় লাগবে টার্মিনালে স্ক্রল করে করে দেখতে। জায়গাও নষ্ট হবে প্রচুর। আমরা যা করতে পারি তা হলো এই আউটপুট একটা ফাইলে সংরক্ষণ বা সেভ করে রাখা। পরে সেটা দেখতে পারি less কমান্ড দিয়ে অনেক কম ঝামেলাবিহীন উপায়ে। তারমানে, আমরা এই আউটপুট বা স্ট্যান্ডার্ড আউটপুট যা স্ক্রীনে আসছে তাকে একটা ফাইলে রিডিরেক্ট করে দেবো। কিন্তু কিভাবে?
রিডিরেক্ট এর জন্য কমান্ড নেই কোনো বরং একটি শেল ফিচার আছে যার মাধ্যমে '>' চিহ্নের মাধ্যমে আমরা সহজেই আউটপুট রিডিরেক্ট করতে পারি। আমরা যদি উপরের এই কমান্ডটির আউটপুট ls-output.txt নামের একটি ফাইলে রিডিরেক্ট করতে চাই তো লিখতে হবে:
কমান্ডটি দেয়ার পর আপনি স্ক্রীনে কিছুই দেখবেন না, কোনো দীর্ঘ লিস্টই নেই। বরং আপনার ওয়ার্কিং ডিরেক্টরিতে ls-output.txt নামে একটি ফাইল পাবেন।
দেখুন, ১৪০ কিলোবাইটের দীর্ঘ টেক্সট ফাইল। আপনি less ls-output.txt
কমান্ডের মাধ্যমে দেখতে পারবেন ফাইলে কি কি লেখা আছে।
আমরা যদি ls-output.txt ফাইলে আরো কিছু আউটপুট একইভাবে রিডিরেক্ট করতে চাই সেক্ষেত্রে একটা ঘটনা ঘটবে। তা হচ্ছে আগের তথ্য সব মুছে যাবে। কিন্তু আমরা যদি তা না চাই, যদি চাই যে আগের তথ্যও থাকুক এবং তারসাথে নতুন তথ্য যোগ হোক তাহলে '>'' এর পরিবর্তে '>>' ব্যবহার করতে হবে।
দেখুন, আমরা আগের কমান্ডটিই দিয়েছি কিন্তু এবার '>>' দিয়ে। ফলে আগের তথ্যের সাথে নতুন রিডিরেক্ট করা তথ্য মিলে দ্বিগুন তথ্য এসেছে।
Last updated