मैं करने के लिए वातानुकूलित हूँ ll
आदेश जो अलियास है ls -alF
. यह सिर्फ एक फ़ाइल गिनती और नीचे फ़ाइलों का आकार याद कर रहा है । मैं के साथ खेला du
और tree
लेकिन मुझे जरूरत के योग नहीं मिल सके । तो मैंने बनाया lll
मेरे लिए ऐसा करना ।
अपने में ~/.bashrc
निम्नलिखित रखें:
lll () { ls -alF "$@" arr=($(ls -alF "$@" | awk '{TOTAL+=$5} END {print NR, TOTAL}')) printf " \33[1;31m ${arr[0]}\33[m line(s). " printf "Total size: \33[1;31m ${arr[1]}\33[m\n"# printf "Total size: \33[1;31m $(BytesToHuman <<< ${arr[1]})\33[m\n"}
फ़ाइल को सहेजें और इसका उपयोग करके संसाधन करें . ~/.bashrc
(या आप अपने टर्मिनल को पुनरारंभ कर सकते हैं) ।
नमूना आउटपुट
के बारे में अच्छी बात ll
आउटपुट यह रंग है । इसके साथ बनाए रखा है lll
लेकिन उपयोग करते समय खो गया find
या du
:
TL, डॉ
एक बोनस फ़ंक्शन जिसे आप जोड़ सकते हैं ~/.bashrc
कहा जाता है BytesToHuman()
. यह वही करता है जो अधिकांश कंसोल उपयोगकर्ता बड़ी संख्या को एमआईबी, जीआईबी, आदि में परिवर्तित करने की अपेक्षा करेंगे:
function BytesToHuman() { # https://unix.stackexchange.com/questions/44040/a-standard-tool-to-convert-a-byte-count-into-human-kib-mib-etc-like-du-ls1/259254#259254 read StdIn b=${StdIn:-0}; d=''; s=0; S=(Bytes {K,M,G,T,E,P,Y,Z}iB) while ((b > 1024)); do d="$(printf ".%02d" $((b % 1024 * 100 / 1024)))" b=$((b / 1024)) let s++ done echo "$b$d ${S[$s]}"} # BytesToHuman ()
अगला टिप्पणी को दो पंक्तियों के बीच फ्लिप करें lll ()
इस तरह दिखने के लिए समारोह:
# printf "Total size: \33[1;31m ${arr[1]}\33[m\n" printf "Total size: \33[1;31m $(BytesToHuman <<< ${arr[1]})\33[m\n"
अब आपका आउटपुट इस तरह दिखता है:
हमेशा की तरह फिर से स्रोत के साथ मत भूलना . ~/.bashrc
जब भी बदलाव करते हैं । (या पाठ्यक्रम के टर्मिनल को पुनरारंभ करें)
पुनश्च-स्व-संगरोध में दो सप्ताह के अंत में मुझे इस पांच साल पुराने लक्ष्य पर काम करने का समय दिया ।