कोई व्यापक मानक नहीं है। जीएनयू कार्यक्रमों में कुछ स्थिरता है, लेकिन आपको प्रत्येक कार्यक्रम के प्रलेखन की जांच करने की आवश्यकता है।
विकिपीडिया का हवाला देते हुए , मेरा जोर दें:
यूनिक्स जैसी प्रणालियों में, ASCII हाइफ़न-माइनस आमतौर पर विकल्पों को निर्दिष्ट करने के लिए उपयोग किया जाता है। चरित्र आमतौर पर एक या एक से अधिक पत्रों के बाद होता है । एक तर्क जो बिना किसी अक्षर के अपने आप में एक एकल हाइफ़न-माइनस है, आमतौर पर निर्दिष्ट करता है कि एक प्रोग्राम को मानक इनपुट से आने वाले डेटा को संभालना चाहिए या मानक आउटपुट पर डेटा भेजना चाहिए। दो हाइफ़न-माइनस वर्ण (-) का उपयोग "लंबे विकल्प" को निर्दिष्ट करने के लिए कुछ कार्यक्रमों पर किया जाता है जहां अधिक वर्णनात्मक विकल्प नामों का उपयोग किया जाता है । यह जीएनयू सॉफ्टवेयर की एक सामान्य विशेषता है।
आमतौर पर, हाइफ़न एक पूर्वनिर्धारित तर्क का संकेत देते हैं। मुझे लगता है कि इसका उपयोग उन्हें फ़ाइल नामों या अन्य लेबल से अलग करने के लिए किया जाता है जिन्हें आप तर्क के रूप में उपयोग कर सकते हैं। यह हमेशा मामला नहीं है, हालांकि (नीचे देखें)।
आपको अक्सर वही तर्क मिलेगा जो लघु और दीर्घ दोनों विकल्पों में उपलब्ध है, जैसे कि ls में ।
कुछ प्रोग्राम एक-चरित्र विकल्पों के लिए एक हाइफ़न का उपयोग करते हैं, और मल्टी-कैरेक्टर विकल्पों के लिए दो हाइफ़न, लेकिन सभी (जीएनयू find
को ध्यान में नहीं आता है)। कुछ कार्यक्रमों में वैकल्पिक हाइफ़न होते हैं या उन्हें पूरी तरह से छोड़ देते हैं ( tar
या बीएसडी ps
को ध्यान में रखते हैं)।
कभी-कभी लंबे विकल्पों ( --foo
) के लिए तर्कों की आवश्यकता होती है, जबकि छोटे विकल्प ( -f
) या (कम से कम एक विशिष्ट डिफ़ॉल्ट तर्क नहीं)।
लघु विकल्प (जैसे cut -d ' '
) में तर्क हो सकते हैं, जबकि लंबे विकल्प (जैसे ls --all
) जरूरी नहीं कि उनके पास हो।
एक कार्यक्रम के एक विशेष व्यवहार को निर्धारित करने के लिए, आपको कभी-कभी एक छोटे विकल्प का उपयोग करने की आवश्यकता होती है, दूसरों के लिए आपको एक लंबे विकल्प का उपयोग करने की आवश्यकता होती है, और कुछ के लिए आपके पास एक विकल्प होता है।
संबंधित नोट पर, कुछ प्रोग्राम एक विकल्प और इसके तर्क के बीच कोई व्हाट्सएप नहीं संभाल सकते हैं , जबकि अन्य नहीं कर सकते हैं।
जैसा कि मैंने शुरुआत में लिखा था, बस कोई सामान्य व्यवहार या मानक नहीं है। अक्सर आप तर्क पार्सिंग के लिए उपयोग की जाने वाली लाइब्रेरी के समान व्यवहार का पता लगा सकते हैं, लेकिन आप शायद इसे जानने के लिए स्रोतों को पढ़ना नहीं चाहते हैं।
आप वास्तव में एक प्रोग्राम के तर्क वाक्य को दूसरे से नहीं जोड़ सकते।
यदि आप विंडोज पर भी विचार करते हैं, तो यह और भी खराब हो जाता है: जबकि विंडोज कमांड लाइन पारंपरिक रूप से /f
विकल्पों के लिए कम से कम (ज्यादातर समय, एकल वर्ण) कॉल का उपयोग करती है, :
विकल्प और उनके मूल्य के बीच विभाजक के रूप में ( यहाँ देखें जैसे ); क्रॉस-प्लेटफ़ॉर्म उपयोगिताओं व्यापक हैं (जैसे कि आप जिन लोगों का उल्लेख करते हैं) और तर्कों के लिए अधिक सामान्य हाइफ़न सिंटैक्स साथ लाएं, ऊपर वर्णित सभी विसंगतियों के साथ।
-i
बनाम--input
या-n
--dry-run
।