উত্তর:
> অপারেটর সাধারণত কোনও ফাইলে আউটপুট পুনঃনির্দেশ করে তবে এটি কোনও ডিভাইসে হতে পারে। আপনি সংযোজন করতে >> ব্যবহার করতে পারেন।
আপনি যদি কোনও নম্বর নির্দিষ্ট না করেন তবে মান আউটপুট স্ট্রিমটি ধরে নেওয়া হয় তবে আপনি ত্রুটিগুলি পুনর্নির্দেশও করতে পারেন
> fileপুনঃনির্দেশ stdout ফাইল
1> fileপুনর্নির্দেশ stdout ফাইল
2> fileপুনর্নির্দেশ stderr ফাইল
&> fileপুনর্নির্দেশ stdout এবং stderr ফাইল থেকে
/dev/nullএটি নাল ডিভাইস যা এটি আপনার ইচ্ছা যে কোনও ইনপুট নেয় এবং এটিকে ফেলে দেয়। এটি কোনও আউটপুট দমন করতে ব্যবহার করা যেতে পারে।
2>&1একটি পুরানো বাক্য গঠন রয়েছে তাই &>বহু বছর আগে কাজ করা হত না তবে উভয়ই সমান।
সংক্ষেপে, এটি stderrব্ল্যাকহোলে (fd 2) পুনর্নির্দেশ করে (কমান্ডের আউটপুট বাতিল করে)।
পুনঃনির্দেশের জন্য আরও কিছু সাধারণ ব্যবহারের কেস:
command > /dev/null 2>&1 &
commandব্যাকগ্রাউন্ডে চালান , বাতিল stdoutএবংstderr
command >> /path/to/log 2>&1 &
চালান commandএবং একটি লগ ফাইলে stdout এবং stderr সংযোজন।
বাশ 4+ এ, একটি সংক্ষিপ্ত (তবে কম পাঠযোগ্য) ফর্মটি কার্যকরী
command &>> /path/to/log
> /dev/null 2>&1পরিবর্তে ব্যবহার করার কোনও ভাল কারণ আছে &> /dev/null?
&>বাশ ৪-এ নতুন, পূর্ববর্তীটি হ'ল প্রচলিত উপায়, আমি এর অভ্যস্ত (স্মরণে রাখা সহজ)।
&> /dev/nullকিছু শাঁস কিন্তু>, / dev / নাল 2> & 1 সব POSIX সামঞ্জস্যপূর্ণ শাঁস কাজ করবে কাজ নাও করতে পারে।
fn>targetযেখানে fnএকটি ফাইল নম্বর (0-2 সাধারণত, কিছু প্রোগ্রাম আরও সংখ্যার সংজ্ঞা দেয়) এবং targetসাধারণত একটি ফাইলের নাম তবে এখানে এটি অন্য ফাইল নাম্বার - প্রিফিক্সড &যা দিয়ে "আমি একটি ফাইলের নামের পরিবর্তে একটি ফাইলের নাম চাই" এর সিনট্যাক্স।
/dev/nullলিনাক্স / ইউনিক্সে ব্ল্যাকহোল হিসাবে বিবেচিত হয়, তাই আপনি এতে কোনও কিছু রাখতে পারেন তবে আপনি এটিকে থেকে ফিরে পেতে সক্ষম হবেন না /dev/null।
আরও, এর 2>অর্থ হ'ল আপনি (যেমন >) স্টারডারকে (যেমন 2) ব্ল্যাকহোলে পুনঃনির্দেশ করছেন (যেমন /dev/null)
আপনার আদেশ হ'ল:
grep -i 'abc' content 2>/dev/null
এই জাতীয় অন্য ফরোয়ার্ড স্ল্যাশ দিয়ে শেষ করার চেষ্টা করবেন না - 2>/dev/null/(এটি কোনও ডিরেক্টরি নয়)।
grep -i 'abc' সামগ্রী আউটপুট উত্পন্ন করবে যা আপনার কনসোলটিতে প্রদর্শিত হবে, কোনও ত্রুটি সহ।
নির্দিষ্ট 2>/dev/nullকরে ত্রুটিগুলি ফিল্টার করবে যাতে সেগুলি আপনার কনসোলের আউটপুট না হয়।
আরও বিশদে: 2 ত্রুটি বর্ণনাকারীকে প্রতিনিধিত্ব করে, যেখানে ত্রুটিগুলি সেখানে লিখিত হয়। ডিফল্টরূপে এগুলি কনসোলে মুদ্রিত হয়।
\> এই ক্ষেত্রে আউটপুটকে নির্দিষ্ট স্থানে পুনঃনির্দেশ করে /dev/null
/dev/null এমন একটি স্ট্যান্ডার্ড লিনাক্স ডিভাইস যেখানে আপনি আউটপুট প্রেরণ করেন যা আপনি উপেক্ষা করতে চান।
> /dev/null 2>&1এবং এর মধ্যে কোনও পার্থক্য আছে&> /dev/null