ls
परीक्षण करता है कि आउटपुट किसी टर्मिनल पर जा रहा है या नहीं। यदि आउटपुट टर्मिनल पर नहीं जा रहा है, तो -1
डिफ़ॉल्ट है। (यह में से एक ने अधिरोहित जा सकता है -C
, -m
या -x
विकल्पों में।)
इस प्रकार, जब ls
एक पाइपलाइन में उपयोग किया जाता है और आपने इसे किसी अन्य विकल्प के साथ ओवरराइड नहीं किया है, ls
तो उपयोग करेगा -1
। आप इस पर भरोसा कर सकते हैं क्योंकि यह व्यवहार POSIX द्वारा आवश्यक है
POSIX विशिष्टता
-1
जब भी आउटपुट किसी टर्मिनल पर नहीं जा रहा है, तो POSIX को डिफ़ॉल्ट की आवश्यकता होती है :
POSIX कल्पना :
डिफ़ॉल्ट प्रारूप मानक उत्पादन के लिए प्रति पंक्ति एक प्रविष्टि को सूचीबद्ध करना होगा; अपवाद टर्मिनलों के लिए या जब -C, -m, या -x विकल्पों में से एक निर्दिष्ट किया जाता है। यदि आउटपुट टर्मिनल के लिए है, तो प्रारूप कार्यान्वयन-परिभाषित है।
वे तीन विकल्प जो डिफ़ॉल्ट एकल-स्तंभ प्रारूप को ओवरराइड करते हैं:
-C
कोलाज अनुक्रम के अनुसार, स्तंभों को छांटे गए प्रविष्टियों के साथ बहु-पाठ-स्तंभ आउटपुट लिखें। पाठ स्तंभों और स्तंभ विभाजक वर्णों की संख्या अनिर्दिष्ट है, लेकिन आउटपुट डिवाइस की प्रकृति के अनुकूल होना चाहिए। यह विकल्प लंबे प्रारूप आउटपुट को अक्षम करता है।
-m
स्ट्रीम आउटपुट स्वरूप; पूरे पृष्ठ के पथनामों को एक <comma> वर्ण द्वारा अलग किया गया, उसके बाद एक <space> वर्ण। सूची टर्मिनेटर के रूप में एक <newline> चरित्र का उपयोग करें और विभाजक अनुक्रम के बाद जब अगली सूची प्रविष्टि के लिए एक पंक्ति में जगह नहीं है। यह विकल्प लंबे प्रारूप आउटपुट को अक्षम करता है।
-x
समान -C, सिवाय इसके कि मल्टी-टेक्स्ट-कॉलम आउटपुट को स्तंभों के बजाय नीचे, प्रविष्टियों के पार निर्मित किया जाता है। यह विकल्प लंबे प्रारूप आउटपुट को अक्षम करता है।
GNU प्रलेखन
से जीएनयू मैनुअल रास :
'-1'
'--फॉर्मैट = सिंगल-कॉलम'
प्रति पंक्ति एक फ़ाइल सूचीबद्ध करें। यह ls के लिए डिफ़ॉल्ट है जब मानक आउटपुट टर्मिनल नहीं है । फ़ाइल नाम के भीतर newline वर्णों के प्रत्यक्ष आउटपुट को दबाने के लिए -b और -q विकल्प भी देखें। [महत्व दिया]
उदाहरण
आइए तीन फाइलें बनाएं:
$ touch file{1..3}
जब आउटपुट टर्मिनल पर जाता है, तो GNU ls
एक बहु-स्तंभ प्रारूप का उपयोग करने का विकल्प चुनता है:
$ ls
file1 file2 file3
जब आउटपुट पाइपलाइन में जाता है, तो POSIX कल्पना के लिए आवश्यक है कि एकल-स्तंभ डिफ़ॉल्ट हो:
$ ls | cat
file1
file2
file3
डिफ़ॉल्ट एकल-स्तंभ व्यवहार को ओवरराइड करने वाले तीन अपवाद -m
अल्पविराम से अलग किए गए स्तंभों के लिए -C
, और नीचे दिए -x
गए स्तंभों के लिए हैं:
$ ls -m | cat
file1, file2, file3
$ ls -C | cat
file1 file2 file3
$ ls -x | cat
file1 file2 file3
n=0; for i in .* *; do ((n++)) ; done ; echo $n
(ड्रॉप करें। यदि आप उन लोगों को गिनना नहीं चाहते हैं)। या:ls -1d ./.* ./* | grep '^\./' | wc -l
(फ़ाइल नाम में '/' नहीं हो सकता)