मेरे पास बहुत लंबी नामों वाली कई फाइलें हैं। कृपया, क्या 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
। यकीन नहीं है कि यह सबसे अच्छा अभ्यास है ...)