मैं कमांड लाइन के बारे में अध्ययन कर रहा हूं और सीखा है कि |
(पाइपलाइन) एक कमांड से आउटपुट को दूसरे के इनपुट पर रीडायरेक्ट करने के लिए है। तो कमांड क्यों 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 *
जो हर फ़ाइल, फ़ोल्डर के लिए एक पंक्ति के साथ उत्तर देगा।