আমি এই নিচে লেখা দেখেছি;
$ some-command >| /tmp/output.txt
উল্লম্ব পাইপগুলি স্ট্যান্ডার্ড পুনঃনির্দেশগুলিতে "পাইপিং" করে একটি কমান্ডের অন্য আদেশের আউটপুট ব্যবহার করা হয় >|
, বাস্তবে এটি সম্পূর্ণরূপে অকেজো যেহেতু এটি >
এই দৃশ্যের মতোই হবে ?
আমি এই নিচে লেখা দেখেছি;
$ some-command >| /tmp/output.txt
উল্লম্ব পাইপগুলি স্ট্যান্ডার্ড পুনঃনির্দেশগুলিতে "পাইপিং" করে একটি কমান্ডের অন্য আদেশের আউটপুট ব্যবহার করা হয় >|
, বাস্তবে এটি সম্পূর্ণরূপে অকেজো যেহেতু এটি >
এই দৃশ্যের মতোই হবে ?
উত্তর:
এটি অকেজো নয় - এটি সরল >
পুনর্নির্দেশ অপারেটরের একটি বিশেষ ফর্ম (এবং সম্ভবত বিভ্রান্তিকরভাবে পাইপগুলির সাথে কিছুই করার নেই)। bash
এবং বেশিরভাগ আধুনিক শেলগুলির একটি বিকল্প রয়েছে noclobber
, যা পুনর্নির্দেশটিকে ইতিমধ্যে বিদ্যমান ফাইলকে ওভাররাইট করা বা ধ্বংস করতে বাধা দেয়। উদাহরণস্বরূপ, যদি noclobber
এটি সত্য হয় এবং ফাইলটি /tmp/output.txt
ইতিমধ্যে বিদ্যমান থাকে, তবে এটি ব্যর্থ হওয়া উচিত:
$ some-command > /tmp/output.txt
তবে, আপনি পুনঃনির্দেশ অপারেটরের noclobber
সাথে স্পষ্টভাবে সেটিংসকে ওভাররাইড করতে পারেন >|
- noclobber
সেট করে থাকলেও পুনঃনির্দেশটি কাজ করবে ।
noclobber
আপনার বর্তমান পরিবেশে সেট করা আছে কিনা তা আপনি জানতে পারবেন set -o
।
Noteতিহাসিক নোটের জন্য, "নোক্লোবার" বিকল্প এবং এর বাইপাস বৈশিষ্ট্যগুলি উভয়ই csh
(70 এর দশকের শেষভাগ) থেকে আসে । ksh
এটি অনুলিপি করেছেন (80 এর দশকের শুরুর দিকে) তবে >|
পরিবর্তে ব্যবহৃত হয়েছিল >!
। পসিক্স ksh
সিনট্যাক্সটি নির্দিষ্ট করে (সুতরাং কয়েকটি সিস্টেমে sh হিসাবে ব্যবহৃত নতুন ছাই ডেরিভেটিভস সমর্থন করে এমন ব্যাশ সহ সমস্ত পসিক্স শেল এটি সমর্থন করে)। Zsh উভয় বাক্য গঠন সমর্থন করে। আমার মনে হয় না এটি কোনও বোর্ন শেল বৈকল্পিকের সাথে যুক্ত হয়েছিল তবে আমি ভুল হতে পারি।
sh
রয়েছে noclobber
, মে 2002. সম্পর্কে যেহেতু
>|
: স্ট্যাকওভারফ্লো