मैं कमांड लाइन के बारे में अध्ययन कर रहा हूं और सीखा है कि |(पाइपलाइन) एक कमांड से आउटपुट को दूसरे के इनपुट पर रीडायरेक्ट करने के लिए है। तो कमांड क्यों ls | fileकाम नहीं करता है?
file इनपुट अधिक फ़ाइल नाम में से एक है, जैसे file filename1 filename2
lsआउटपुट एक फ़ोल्डर पर निर्देशिकाओं और फ़ाइलों की एक सूची है, इसलिए मुझे लगा कि ls | fileएक फ़ोल्डर में प्रत्येक फ़ाइल का फ़ाइल प्रकार दिखाना चाहिए था।
जब मैं इसका उपयोग करता हूं, तो आउटपुट होता है:
Usage: file [-bcEhikLlNnprsvz0] [--apple] [--mime-encoding] [--mime-type]
[-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
file -C [-m magicfiles]
file [--help]
चूंकि fileकमांड के उपयोग में कुछ त्रुटि थी
file *सबसे अच्छा तरीका है, मैं बस सोच रहा था कि lsआउटपुट का उपयोग करना काम क्यों नहीं कर रहा था। संदेह साफ हो गया :)
ls आमतौर पर एक बुरा विचार है।
ls, तो यह इंगित करता है कि आप मौजूदा निर्देशिका में सभी फाइलेंfileकमांड के साथ संभालना चाहते हैं । ... तो बस क्यों न करें:,file *जो हर फ़ाइल, फ़ोल्डर के लिए एक पंक्ति के साथ उत्तर देगा।