कभी-कभी मुझे निम्नलिखित कमांड दिखाई देती है:
find . -name * -exec ls -a {} \;
मुझे इसे निष्पादित करने के लिए कहा गया था।
{} \;
यहाँ क्या मतलब है?
-name *
बेमानी से भी बदतर है। क्योंकि *
अयोग्य है, शेल मौजूदा फ़ोल्डर में फ़ाइल नामों की सूची में फैलता है, जिसमें रिक्त स्थान गलत तरीके से व्यवहार किया जाता है, जिससे अप्रत्याशित परिणाम या एक त्रुटि संदेश जाता है। एक अतिरिक्त बिंदु के रूप में, find
कई कार्य हैं, उनमें से एक फाइलों की सूची बनाना है; यह उपयोग करने से बचा जाता है -exec
। जैसे, आप उपयोग कर सकते हैं find . -print
या find . -ls
। या तो आप बैकस्लैश के साथ किया था के रूप में, अंत में, वहाँ सेमी-कोलन से बचने के लिए दो तरीके हैं \;
, या उद्धृत करके: ';'
। आप जिसके साथ अधिक सहज महसूस करते हैं, उसका उपयोग करें।
-name *
बेमानी है।