क्या मुझे वर्णमाला में अच्छे अभ्यास के रूप में झंडे का आदेश देना चाहिए?


14

मुझे पता है कि ये दोनों कमांड एक ही काम करते हैं:

ls -la
ls -al

लेकिन मैं सोच रहा हूं कि क्या उनके बीच कोई वरीयता है। क्या एक निश्चित तरीके से उन्हें ऑर्डर करना बेहतर है?


11
आपको इस टी-शर्ट की भी आवश्यकता है: redbubble.com/people/digerati/works/… :)
सर्गेई

@ शार्सी कमाल की शर्ट!
टेरेंस

जवाबों:


15

यह वास्तव में कोई फर्क नहीं पड़ता * जब तक कि एक कमांड स्पष्ट रूप से उल्लेख नहीं करता है। मैं बिना किसी संदर्भ के आया हूं कि एक गाइडलाइन की तरह कुछ भी दिया कि विकल्पों को एक के बाद एक कैसे रखा जाए। इसलिए मुझे लगता है कि पठनीयता के लिए विकल्पों को वर्णानुक्रम में व्यवस्थित किया जा सकता है।

* एक बहुत ही महत्वपूर्ण कावेट है जो किसी भी विकल्प को किसी फ़ाइल नाम या किसी अन्य इनपुट की आवश्यकता है, उसके ठीक बाद आपको उसके अनुसार रखना होगा।

उदाहरण के लिए, इनपुट फ़ाइल से देखने के लिए पैटर्न लेने के लिए इनपुट के रूप में एक फ़ाइल -fका विकल्प लिया grepजाता है। आपको निम्नानुसार कमांड देने की आवश्यकता है:

grep -cf input.txt file.txt 

यदि आप इसका उपयोग करते हैं जैसे:

grep -fc input.txt file.txt 

यह विफल हो जाएगा क्योंकि यह cएक फ़ाइल नाम के रूप में उपयोग करेगा ।


12

POSIX सम्मेलनों में परिभाषित दिशानिर्देश 11 और उपयोगिता सिंटेक्स दिशानिर्देश के 12 कि आदेश " नहीं बात करनी चाहिए " जब तक यह उपयोगिता के लिए ही दर्ज नहीं किया है।

GNU सी लाइब्रेरी संदर्भ मैनुअल भी सम्मान में उन लोगों के POSIX सम्मेलनों 25.1.1 कार्यक्रम तर्क सिंटेक्स कन्वेंशनों

लेकिन ध्यान दें, कई उपयोगिताओं हैं जो कुछ स्थितियों में सख्त आदेश देते हैं कि पैरामीटर कैसे निष्पादित करें (उदाहरण के लिए खोजें)। से खोज मैनपेज :

-nameपरीक्षण से पहले आता है -typeआदेश कॉल करने के लिए होने से बचने के लिए परीक्षण stat(2)हर फ़ाइल पर।

कभी-कभी उपयोगिता आदेश देने के बारे में शिकायत करती है।


3
सख्ती से बोलना, findकेवल कुछ ही विकल्प हैं, POSIX केवल दो विकल्पों को परिभाषित करता है -Hऔर -L। जीएनयू findउबंटू में कुछ और विकल्प है, लेकिन -typeऔर -nameआदि माना जाता है ऑपरेटरों , नहीं विकल्प । और ऑपरेटरों के लिए, ऑर्डर आमतौर पर मायने रखता है।
गीरा

5

एलएस के साथ आप विकल्पों के आदेश के साथ शायद ही गलत हो सकते हैं।

लेकिन ध्यान रखें कि अन्य आदेशों के आदेश के आधार पर विकल्पों के लिए अलग-अलग प्रतिक्रियाएं हो सकती हैं।

एक उदाहरण खोज आदेश है। उदाहरण के लिए आपको अलग-अलग परिणाम मिलेंगे:

  find . -ls -mtime -1 

तथा

  find . -mtime -1 -ls

3

यदि आप जो अभ्यास करना चाहते हैं, वह छोटे तारों को वर्णानुक्रम में करना है, शायद मुझे दो रणनीतियाँ उपयोगी लगती हैं: शब्द बनाना (टाइपो को कम करना) और वाक्य बनाना (समझ में सुधार)।

Ls के लिए, उदाहरण के लिए, मैं आमतौर पर उपयोग करें ls -halF, क्योंकि भले ही अजीब पूंजीकरण के साथ, मैं बेहतर टाइपिंग पर हूँ आधे की तरह कुछ की तुलना में Falh है कि एक शब्द नहीं है।

टार के लिए, दूसरी ओर, मैं टाइप करता हूं tar czvf filenameऔर कहता हूं (मेरे सिर में) "टार क्रिएट एंड जिप, वर्बोसली फॉर फाइलनाम" क्योंकि यही मैंने सीखा कि विभिन्न अक्षरों का क्या मतलब है।


मुझे याद है e2fsck -fvcckt क्योंकि यह उस स्थिति को मंत्र देता है जो मैं हो सकता है यदि यह बहुत अधिक त्रुटियां देता है। ;)
जो

2

जैसे अन्य लोगों ने उत्तर दिया है, इससे कोई फर्क नहीं पड़ता (जब तक कि अन्यथा दस्तावेज न हो या विकल्प तर्क आगे तर्क ले लें)।

लेकिन क्या यह बेहतर है कि वर्णमाला के विकल्पों को क्रमबद्ध किया जाए।

व्यक्तिगत रूप से, मुझे लगता है कि वर्णानुक्रम सख्त वर्णानुक्रम की तुलना में अधिक मूल्य प्रदान करता है। उदाहरण के लिए, यादगार शब्द बनाते समय विकल्पों का एक सेट याद रखना आसान होता है:

netstat -tan
# alphabetic is good (by chance) in this case
netstat -ant

बनाम:

netstat -atn
netstat -nta

इसलिए यदि आप अपने आप को एक आदेश के लिए विकल्पों की एक निश्चित कॉम्बो दोहराते हुए पाते हैं, तो आप अक्षरों को एक ऐसे क्रम में पुन: व्यवस्थित और व्यवस्थित करना चाह सकते हैं जो आपके लिए याद रखना सबसे आसान है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.