मैं शेल में काम करने के लिए नया हूं और इन आदेशों का उपयोग मनमाना लगता है। क्या कोई कारण है कि एक झंडे में एक एकल डैश है और दूसरे में डबल डैश हो सकता है?
मैं शेल में काम करने के लिए नया हूं और इन आदेशों का उपयोग मनमाना लगता है। क्या कोई कारण है कि एक झंडे में एक एकल डैश है और दूसरे में डबल डैश हो सकता है?
जवाबों:
एक एकल हाइफ़न का अनुसरण कई एकल-वर्ण के झंडे द्वारा किया जा सकता है। एक डबल हाइफ़न एक एकल, मल्टीचैकर विकल्प का उपसर्ग करता है।
इस उदाहरण पर विचार करें:
tar -czf
इस उदाहरण में, -czf
तीन एकल चरित्र झंडे निर्दिष्ट करता है: c
, z
, और f
।
अब एक और उदाहरण पर विचार करें:
tar --exclude
इस मामले में, --exclude
नामित एक एकल, मल्टीचैकर विकल्प निर्दिष्ट करता है exclude
। डबल हाइफन कमांड लाइन तर्क स्पष्ट रूप से दिखाता, सुनिश्चित करना है कि tar
यह के रूप में व्याख्या exclude
के बजाय का एक संयोजन e
, x
, c
, l
, u
, d
, और e
।
cdrecord
कि उपरोक्त टिप्पणियों में वर्षों पहले बताया गया है।
यह सब कार्यक्रम पर निर्भर करता है। आमतौर पर "-" का उपयोग 'लघु' विकल्प (एक-अक्षर, -एच) के लिए किया जाता है, और "-" का उपयोग "लंबे" (एर) विकल्प (--एचएलपी) के लिए किया जाता है।
छोटे विकल्पों को आमतौर पर जोड़ा जा सकता है (इसलिए "-एच-ए" "-हा" के समान है)
यूनिक्स जैसी प्रणालियों में, ASCII हाइफ़न-माइनस आमतौर पर विकल्पों को निर्दिष्ट करने के लिए उपयोग किया जाता है। चरित्र आमतौर पर एक या एक से अधिक पत्रों के बाद होता है। एक तर्क जो बिना किसी अक्षर के अपने आप में एक एकल हाइफ़न-माइनस है, आमतौर पर निर्दिष्ट करता है कि एक प्रोग्राम को मानक इनपुट से आने वाले डेटा को संभालना चाहिए या मानक आउटपुट पर डेटा भेजना चाहिए। दो हाइफ़न-माइनस वर्ण (-) का उपयोग "लंबे विकल्प" को निर्दिष्ट करने के लिए कुछ कार्यक्रमों पर किया जाता है जहां अधिक वर्णनात्मक विकल्प नामों का उपयोग किया जाता है। यह जीएनयू सॉफ्टवेयर की एक सामान्य विशेषता है।
यह वास्तव में एक सम्मेलन है। हालाँकि, यह प्रोग्राम को दिए गए विकल्पों के बारे में अधिक कुशलता से जानने के लिए पार्सर्स की सहायता कर सकता है। इसके अलावा, वहाँ स्वच्छ उपयोगिताएँ हैं जो इन कमांडों को पार्स करने में मदद कर सकती हैं, जैसे कि getopt(3)
या getopt_long(3)
किसी प्रोग्राम के तर्कों को पार्स करने में मदद करने के लिए गैर-मानक ।
यह अच्छा है, क्योंकि हमारे पास कई छोटे विकल्प संयुक्त हो सकते हैं, जैसा कि अन्य उत्तर कहते हैं, जैसे tar -xzf myfile.tar.gz
।
अगर वहाँ एक "लिसा" के लिए तर्क था ls
, तो संभवतः टाइप करने के लिए एक अलग अर्थ ls -lisa
होगा ls --lisa
। पूर्व कर रहे हैं l
, i
, s
, और a
पैरामीटर, नहीं शब्द।
वास्तव में, आप लिख सकते हैं ls -l -i -s -a
, जिसका अर्थ बिल्कुल वैसा ही है ls -lisa
, लेकिन यह कार्यक्रम पर निर्भर करेगा।
ऐसे कार्यक्रम भी हैं जो इस सम्मेलन का पालन नहीं करते हैं। सबसे विशेष रूप से मेरी दृष्टि के लिए, dd
और gcc
।
सिंगल डैश के साथ छोटे विकल्प बनाम डबल डैश के साथ लंबे विकल्प
छोटे विकल्पों को एक तर्क में जोड़ा जा सकता है;
for example: ls -lrt #instead of ls -l -r -t
यदि हम एकल डैश के साथ लंबे विकल्प की अनुमति देते हैं, तो यह अस्पष्टता का कारण बनता है। इसे हल करने के लिए हम लंबे विकल्पों के लिए डबल डैश का उपयोग करते हैं।