क्या मैं ls लिस्टिंग में लंबी फ़ाइल नामों को छोटा कर सकता हूं


10

मेरे पास बहुत लंबी नामों वाली कई फाइलें हैं। कृपया, क्या ls-c का उपयोग करने और एक समग्र दृश्य के लिए अधिक कॉलम प्राप्त करने के लिए फ़ाइल नामों को अलग करना है?

या कॉम्पैक्ट लिस्टिंग पाने का एक बेहतर तरीका है?

जवाबों:


9

आप कुछ ऐसा कर सकते हैं:

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 *

zsh उदाहरण


शानदार, धन्यवाद। मेरे फेडोरा 12 सिस्टम पर मैंने ls का उपयोग किया है कट -c1-20 | कॉलम -W "$ {COLUMNS: -80}" लाइन, और मेरी सभी फाइलें एक स्क्रीन पर मिलीं।
हैरी वेस्टन

0

एक 80 कॉलम स्क्रीन को मानते हुए, मैं उपयोग करना पसंद करता हूं

ls -F | perl -lne 's/(.{34}).*/$1... /s ; print' | column -x | more

यहाँ छवि विवरण दर्ज करें

ls -FCपुनरावृत्ति द्वारा छाँटने के बजाय उपयोग करें


(Sidenote: मेरा lsपहले से ही स्क्रॉल क्योंकि यह करने के लिए aliased है ls -CF --color | more -r। यकीन नहीं है कि यह सबसे अच्छा अभ्यास है ...)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.