मेरे पास बहुत लंबी नामों वाली कई फाइलें हैं। कृपया, क्या ls-c का उपयोग करने और एक समग्र दृश्य के लिए अधिक कॉलम प्राप्त करने के लिए फ़ाइल नामों को अलग करना है?
या कॉम्पैक्ट लिस्टिंग पाने का एक बेहतर तरीका है?
मेरे पास बहुत लंबी नामों वाली कई फाइलें हैं। कृपया, क्या ls-c का उपयोग करने और एक समग्र दृश्य के लिए अधिक कॉलम प्राप्त करने के लिए फ़ाइल नामों को अलग करना है?
या कॉम्पैक्ट लिस्टिंग पाने का एक बेहतर तरीका है?
जवाबों:
आप कुछ ऐसा कर सकते हैं:
ls | cut -c1-20 | columns -W "${COLUMNS:-80}"

(जो columnsएक साथ sजीएनयू autogen से)। या:
ls | cut -c1-20 | column -c"${COLUMNS:-80}"
का प्रयोग columnके रूप में BSDs पर या में पाया bsdmainutilsडेबियन या उसके डेरिवेटिव पर।
zsh कॉलम में चीजों को प्रिंट करने के लिए भी समर्थन है, इसलिए आप एक फ़ंक्शन को परिभाषित कर सकते हैं जैसे:
setopt extendedglob
c() print -rC$[COLUMNS/(($1)+2)] -- "${(M)@[2,-1]##?(#c0,$[$1])}"
और इसे इस प्रकार उपयोग करें:
c 20 *.txt
स्तंभों में सूची txt फ़ाइलों को मुद्रित करने के लिए, 20 वर्णों को काट दिया गया।
और इसे थोड़ा पागल बनाने के लिए, आप इसे जोड़ सकते हैं:
command_not_found_handler() {(($1)) && c "$@"}
इस तरह, आप यह भी कर सकते हैं:
20 *
या और भी:
8+8 *

एक 80 कॉलम स्क्रीन को मानते हुए, मैं उपयोग करना पसंद करता हूं
ls -F | perl -lne 's/(.{34}).*/$1... /s ; print' | column -x | more
ls -FCपुनरावृत्ति द्वारा छाँटने के बजाय उपयोग करें
(Sidenote: मेरा lsपहले से ही स्क्रॉल क्योंकि यह करने के लिए aliased है ls -CF --color | more -r। यकीन नहीं है कि यह सबसे अच्छा अभ्यास है ...)