আমি কীভাবে ব্যাশ "নোক্লোবার" বিকল্পটি ওভাররাইড করব?


17

bash noclobberফেরৎ ফাইল মুছে যাওয়ার থেকে বিকল্প প্রতিরোধ করুন। তবে কখনও কখনও আমি সত্যিই চাই। cshঅনুরূপ বিকল্প রয়েছে এবং !ফাইল-নামগুলির আগে একটি রাখার মাধ্যমে এটি অতিরিক্ত-চালিত হতে পারে । এটি করার কোন উপায় আছে bash?

উত্তর:


19

হ্যাঁ. পরিশেষে |ফর্মে ফেরৎ অপারেটরের >|। এটি বাশ রেফারেন্স ম্যানুয়ালের § 3.6.2 এ রয়েছে , qv

যদি পুনঃনির্দেশ অপারেটরটি '>' থাকে এবং সেট বিল্টিনে নোক্লোবার বিকল্পটি সক্ষম করা থাকে, তবে শব্দটির প্রসারণের ফলে যার নামটির ফলাফল উপস্থিত ফাইলটি একটি নিয়মিত ফাইল হয় তবে পুনঃনির্দেশটি ব্যর্থ হবে। যদি পুনঃনির্দেশ অপারেটরটি '> |' হয়, বা পুনর্নির্দেশ অপারেটরটি '>' হয় এবং নোক্লোবার বিকল্পটি সক্ষম না হয় তবে শব্দ দ্বারা নামের ফাইলটি উপস্থিত থাকলেও পুনঃনির্দেশের চেষ্টা করা হয়।

নোক্লোবার বিকল্প সম্পর্কে এই টিউটোরিয়ালটি দেখুন । এটা সাহায্য হতে পারে।


3

ব্যবহারের |( "পাইপ") মধ্যে bashপরিবর্তে !( "ঠুং") হিসাবে আপনি would csh। উদাহরণ স্বরূপ:

echo done >| out

মনে রাখবেন যে আপনি যদি পুনর্নির্দেশ stderrকরতে stdout এবং ওভাররাইড করতে চান noclobber, না হয় কাজ করবে >|&না &>|; পরিবর্তে দীর্ঘ ফর্ম ব্যবহার করুন:

cmd-with-errors done >| out 2>&1

আপনি জানেন কেন err &>| outকাজ হয় না?
সংঘিউন লি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.