উত্তর:
সংক্ষিপ্ত উত্তর :
কারণ এটি কোনও পতাকার একাধিক ব্যবহার উপেক্ষা করার জন্য কর্মসূচিযুক্ত।
দীর্ঘ উত্তর:
আপনি দেখতে পারেন সোর্স কোড এর ls, সেখানে ফাংশন একটি অংশ getopt_long()এবং একটি বিশাল সুইচ মামলা:
1648 int c = getopt_long (argc, argv,
1649 "abcdfghiklmnopqrstuvw:xABCDFGHI:LNQRST:UXZ1",
1650 long_options, &oi);
....
1654 switch (c)
1655 {
....
1707 case 'l':
1708 format = long_format;
1709 break;
....
1964 }
ফাংশনটি getopt_long()প্রোগ্রামটিতে প্রদত্ত সমস্ত পরামিতি পড়ে। ক্ষেত্রে যদি -lভেরিয়েবল formatসেট করা থাকে। সুতরাং আপনি যখন একাধিক টাইপ করেন তখন -lllllllllচলকটি একাধিকবার সেট করা হয় তবে এতে কোনও পরিবর্তন হয় না।
ঠিক আছে, এটি একটি জিনিস পরিবর্তন করে। এই বিশাল সুইচ কেস স্টেটমেন্টটি একাধিক -lফ্ল্যাগের কারণে একাধিকবার চলতে হবে । lsএকাধিক -lপতাকা দিয়ে সম্পূর্ণ করতে আরও দীর্ঘ প্রয়োজন । তবে এই সময়টি উল্লেখ করার মতো নয়। =)
কারণ এটি করা সঠিক জিনিস। ধরুন আপনার কাছে কোনও স্ক্রিপ্ট এরকম কিছু করছে:
ls $LS_OPTIONS -l "$dir"
যেখানে এটি সম্ভব যেখানে $LS_OPTIONSইতিমধ্যে রয়েছে -l। এই আদেশটি একটি ত্রুটি তৈরি করার জন্য এটি স্ব-স্বজ্ঞাত এবং বিরক্তিকর হবে এবং এটি এড়াতে স্ক্রিপ্টে অতিরিক্ত যুক্তি প্রয়োজন।
-lএটির জন্য সর্বোত্তম উদাহরণ নাও হতে পারে তবে আশা করি আপনি দেখতে পাবেন যে ধারণাটি সাধারণভাবে কীভাবে প্রযোজ্য। একটি আরও ভাল উদাহরণ সংকলক বিকল্প যা সংকলক $CFLAGSএকটি নির্দিষ্ট অনুরোধে সুস্পষ্ট বিকল্প ডুপ্লিকেট হতে পারে।
lsবিকল্পটি ঘটতে পারে যদি আপনি একটি বিকল্প নাম নির্দিষ্ট করে থাকেন যা কিছু বিকল্পের সেট সহ কল করে।
-lআপনার lsওরফে একটি খারাপ ধারণা মত মনে হয়, একই সমস্যা বিকল্প একটি ইন্টারেক্টিভ মধ্যে সুন্দর সঙ্গে উঠা সম্ভবত lsমত ওরফে -pবা --color=auto।
ls। llএর জন্য একটি উপাস হতে পারে ls -lএবং সেই উরফ সহ একটি সিস্টেমে আমি টাইপ করতে পারি ll -lart।
lsকোনও bashকমান্ড নয়, তবে একটি পৃথক নির্বাহযোগ্য যা আপনি প্রবর্তন করতে যাচ্ছেন bash। এটি বলেছিল, -lকেবল বুলিয়ান পতাকা এটিই এক প্রকার, যা যদি উপস্থিত lsহয় তবে আউটপুটটির জন্য দীর্ঘ-শৈলীর বিন্যাস ব্যবহার করতে পারে। বেশিরভাগ প্রোগ্রামগুলি কেবল এ জাতীয় পতাকাগুলির একাধিক ব্যবহার ( ls -llএকইরূপে ls -l -l) উপেক্ষা করবে যদিও এর কিছু ব্যতিক্রম রয়েছে (উদাহরণস্বরূপ, যদি -v'ভার্বোস' অর্থ, তবে কোনও প্রোগ্রাম "আরও বেশি ভার্বোজ হতে" বোঝাতে একাধিক ব্যবহারের ব্যাখ্যা দিতে পারে)।
-vvvহল ssh।
aptitude moo
শেল অ্যালিয়াসগুলি বেশ বিরক্তিকর হবে যদি কমান্ডগুলি lsবারবার বিকল্পগুলির অনুমতি না দেয়।
ধরা যাক আপনার ছিল
alias ls='ls --color=auto'
alias rm='rm -i'
তারপর, পরস্পরবিরোধী পতাকা অনুমতি দেওয়া হয়নি, এটা মত ইস্যু কমান্ড একটি ত্রুটি হবে ls --color=neverবা ls --color=autoবা rm -i।
অতএব, এই কমান্ডগুলি পরের পতাকাগুলিকে পূর্বেরগুলিকে ওভাররাইড করার জন্য ডিজাইন করা হয়েছে।
--inplaceএবং উভয়কে --delay-updatesনিয়েই সিএসএনসি চেষ্টা করুন )) কিছু সরঞ্জাম কেবল শেষ যা আসে তা গ্রহণ করে; rm -ifসম্ভবত সেখানে একটি ভাল উদাহরণ। কিন্তু ম এর -l অপশনের কোনো দ্বন্দ্ব নেই, অত ls -lএবং ls -llএকটা সমস্যা হয় না, এবং এটি কোনো গুরুত্বপূর্ণ পদ্ধতিতে মৃত্যুদন্ড প্রভাব ফেলে না। কম্পিউটারগুলি মন-সংকুচিত পুনরাবৃত্তিতে ভাল।