(> এবং >>) পুনঃনির্দেশের উভয় পদ্ধতির মধ্যে এই ক্ষেত্রে আপনার যে বিষয়টি বুঝতে হবে তা হ'ল:
>
পুনঃনির্দেশ এবং তথ্য যেখানে এটি নির্দেশিত হয়েছিল ওভাররাইট করে। পাইপ "|" এর মাধ্যমে কোনও তথ্য পাওয়ার সময় এমনটি ঘটে
>>
এটি নির্দেশিত তথ্যগুলিতে পুনঃনির্দেশ এবং কনটেটেট করে। পাইপ "|" এর মাধ্যমে কোনও তথ্য পাওয়ার সময় এমনটি ঘটে
উভয় ক্ষেত্রেই যদি ফাইলটি না থাকে তবে এটি পরিবর্তে তৈরি করা হবে। আপনি যদি একই ফাইলটিতে আবার চালনা করেন তবে কেবল ">>" তে তথ্য সংযুক্ত হবে। ">" দিয়ে আপনি প্রথম রান করে যা কিছু করেছিলেন তা কেবল ওভাররাইট করে ফেলবেন।
তবে আউটপুট ফাইলের মতো একই ইনপুট ফাইলটি ব্যবহার করার সময় এখানে ডিল হয়। সেই নির্দিষ্ট ক্ষেত্রে, আপনি ">" ব্যবহার করলে আপনি "ইনপুট" অংশটি পার্স করার প্রয়োজনীয় তথ্য সরিয়ে ফেলবেন, যেহেতু আউটপুট ফাইলটি "এটি ওভাররাইট করা" হবে। সুতরাং:
rev file.txt | cat > file.txt
"ধীর গতির ব্যাখ্যা" তে আসলে যা ঘটছে তা হ'ল:
revএর সামগ্রীটি বিপরীত করতে file.txtএবং পাইপে প্রেরণের জন্য প্রস্তুত করে
revপাইপে তথ্য প্রেরণ করার সময় পাইপ এটিকে সরাসরি প্রবাহিত করে cat।
catতথ্য প্রাপ্তির সময় এটি স্বয়ংক্রিয়ভাবে file.txtএটি সেট হয়ে যাওয়ার সাথে এটি প্রয়োগ করবে ।
- এখানে মূলশব্দটি "যখন", কারণ একইসাথে সবকিছু ঘটছে। এই অংশে আরও গভীর ধারণা পেতে দয়া করে এমিলের নীচে দুর্দান্ত মন্তব্যগুলি দেখুন।
catrevপুরো ফাইলটি পাইপ করার জন্য অপেক্ষা করবে না । এটি কেবলমাত্র তথ্যের প্রথম অংশটি তার মিনিটের মিনিটে শুরু হবে, যার অর্থ, আপনি কোন চিহ্ন ব্যবহার করেছেন তার উপর নির্ভর করে এটি এর সাথে একটি সংযোগ খুলবে file.txt।
- এই ক্ষেত্রে যেহেতু আপনি ব্যবহৃত > পরিবর্তে >> , শেল আউটপুট ফাইল যার মানে এটা খুলবে অগ্রভাগ ছাঁটিয়া হবে এবং পরিষ্কার তথ্য
file.txtনতুন তথ্য জন্য অপেক্ষা এটি পেতে হয়। এর সাথে >> এর সাথে এটি একটি সংযোগ খুলবে file.txtএবং সনাক্ত করা শেষ লাইনে নতুন তথ্যের জন্য অপেক্ষা করবে।
- যেহেতু তথ্যটি ইতিমধ্যে > এর
file.txtসাথে সাফ হয়ে গেছে , কাজটি করার চেষ্টা করবে এবং কিছুই পাবে না কারণ নতুন তথ্যের প্রস্তুতিতে সমস্ত কিছু মুছে ফেলা হয়েছে।revcat
তাহলে উপরেরটি পড়ে অন্যরা কেন কাজ করবেন? এর জন্য:
rev file.txt | cat > file2.txt && mv file.txt file2.txt
এখানে আপনি বিড়ালকে পাইপ দিচ্ছেন যা অন্য কোনও ফাইলে তথ্য প্রেরণ করছে । এই ক্ষেত্রে, প্রক্রিয়াজাত ইনপুট ফাইল file.txtআউটপুট ফাইলের মতো নয় file2.txt। এর পরে আপনি আক্ষরিকভাবে পুরোটির উপরে ওভাররাইট file2.txtকরছেন file.txt, সুতরাং তৈরি করা সমস্ত প্রক্রিয়া catমুছে ফেলা হয়েছিল। মূলত পুরো লাইনটিকে সরলীকৃত করা যেতে পারে cp file.txt file2.txtকারণ এটি একই কাজ করছে যেহেতু file2.txtশেষে কমান্ডটি হারিয়ে ফেলে revএবং ওভাররাইট করা হয় mv।
rev file.txt | cat >> file.txt
এই ক্ষেত্রে আপনি হয় concatenating একই ফাইলে তথ্য। সুতরাং এটি কেবলমাত্র সেই ফাইলটির সাথে একটি সংযোগ খুলছে তবে কোনও একক > এর সাথে দেখা তথ্য মোছা হচ্ছে না । শেষ ফলাফলটি হওয়া উচিত, মূল তথ্য এবং বিপরীত তথ্য।
catভালো আউট:rev file.txt > file2.txt && mv file2.txt file.txt। এটি একটি অতিমাত্রায় ব্যবহারcat। এটিকে ফেলে রেখে আপনি একটি অতিরিক্ত প্রক্রিয়া চালিয়ে যান।