rm
উভয় -i
এবং -f
বিকল্পের সাথে ব্যবহার করার সময় , প্রথমটিকে অগ্রাহ্য করা হবে। এটি পসিক্স স্ট্যান্ডার্ডে নথিভুক্ত করা হয়েছে :
-f
Do not prompt for confirmation. Do not write diagnostic messages or modify
the exit status in the case of nonexistent operands. Any previous
occurrences of the -i option shall be ignored.
-i
Prompt for confirmation as described previously. Any previous occurrences
of the -f option shall be ignored.
এবং জিএনইউ info
পৃষ্ঠায়:
‘-f’
‘--force’
Ignore nonexistent files and missing operands, and never prompt the user.
Ignore any previous --interactive (-i) option.
‘-i’
Prompt whether to remove each file. If the response is not affirmative, the
file is skipped. Ignore any previous --force (-f) option.
হুডের নীচে কী ঘটে তা দেখা যাক:
rm
getopt(3)
বিশেষভাবে তার বিকল্পটি প্রক্রিয়া করে getopt_long
। এই ফাংশনটি কমান্ড লাইনে বিকল্প আর্গুমেন্টগুলি প্রক্রিয়া করবে ( **argv
) উপস্থিতি অনুসারে:
যদি getopt () বারবার বলা হয়, এটি প্রতিটি বিকল্প উপাদান থেকে প্রতিটি বিকল্প অক্ষরের ধারাবাহিকভাবে ফিরে আসে।
সমস্ত অপশন প্রক্রিয়া না করা অবধি এই ফাংশনটি সাধারণত একটি লুপে ডাকা হয়। এই ফাংশন দৃষ্টিকোণ থেকে, বিকল্পগুলি ক্রমে প্রক্রিয়া করা হয়। আসলে যা ঘটে তা অ্যাপ্লিকেশন নির্ভর, কারণ অ্যাপ্লিকেশন যুক্তি বিরোধী বিকল্পগুলি সনাক্ত করতে, সেগুলি ওভাররাইড করতে বা একটি ত্রুটি উপস্থাপন করতে পারে। ক্ষেত্রে জন্য rm
এবং i
এবং f
বিকল্প, তারা পুরোপুরি ঊর্ধ্বলিপি eachother। থেকে rm.c
:
234 case 'f':
235 x.interactive = RMI_NEVER;
236 x.ignore_missing_files = true;
237 prompt_once = false;
238 break;
239
240 case 'i':
241 x.interactive = RMI_ALWAYS;
242 x.ignore_missing_files = false;
243 prompt_once = false;
244 break;
উভয় বিকল্প একই ভেরিয়েবল সেট করে, এবং এই ভেরিয়েবলগুলির অবস্থা কমান্ড লাইনে সর্বশেষ যে কোনও বিকল্প থাকবে। এর প্রভাবটি পসিক্স মান এবং rm
ডকুমেন্টেশনের সাথে ইনলাইন ।