Tôi đang điều kiện để những ll
lệnh đó là bí danh đến ls -alF
. Nó chỉ thiếu một số lượng tập tin và kích thước của các tập tin ở phía dưới. Tôi chơi với du
và tree
nhưng không thể có được tổng số tôi cần. Vì vậy, tôi tạo ra lll
để làm điều đó cho tôi.
Bạn ~/.bashrc
ra sau:
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"}
Lưu các tập tin và tài nguyên, nó sử dụng . ~/.bashrc
(hoặc anh có thể khởi động thiết bị đầu cuối của).
Mẫu ra
Những điều tốt đẹp về ll
đầu ra là nó màu sắc. Này được duy trì với lll
nhưng mất khi sử dụng find
hay du
:
TL;DR
Một phần thưởng chức năng bạn có thể thêm vào ~/.bashrc
được gọi là BytesToHuman()
. Điều này không có gì nhiều điều khiển người sẽ đợi chuyển số lượng lớn để theo dõi GiB etc:
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 ()
Tiếp theo lật bình luận giữa hai dòng trong lll ()
chức năng nhìn như thế này:
# printf "Total size: \33[1;31m ${arr[1]}\33[m\n" printf "Total size: \33[1;31m $(BytesToHuman <<< ${arr[1]})\33[m\n"
Bây giờ, ra vẻ như thế này:
Như luôn luôn đừng quên để lại nguồn với . ~/.bashrc
bất cứ khi nào làm thay đổi. (Hoặc khởi động thiết bị đầu cuối tất nhiên)
PS - trong Hai tuần tự cách ly cuối cùng đã cho tôi thời gian để làm việc trên này năm năm tuổi mục tiêu.