Buna şartlandım. ll
takma adı verilen komut ls -alF
. Sadece altta bir dosya sayısı ve dosya boyutu eksik. Oynadığı du
ve tree
ama ihtiyacım olan toplamları alamadım. Bu yüzden yarattım lll
bunu benim için yapmaya.
Senin içinde ~/.bashrc
aşağıdakileri yerleştirin:
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"}
Dosyayı kaydedin ve kullanarak kaynak . ~/.bashrc
(veya terminalinizi yeniden başlatabilirsiniz).
Örnek çıktı
Hakkında güzel bir şey ll
çıktı renklerdir. Bu ile korunur lll
ancak kullanırken kayboldu find
veya du
:
TL;DR
Ekleyebileceğiniz bir bonus işlevi ~/.bashrc
denir BytesToHuman()
. Bu, çoğu konsol kullanıcısının büyük sayıları MıB, GiB vb.'Ye dönüştürmesini beklediği şeyi yapar:
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 ()
Ardından, yorumu iki satır arasında çevirin lll ()
böyle görünmek için işlev:
# printf "Total size: \33[1;31m ${arr[1]}\33[m\n" printf "Total size: \33[1;31m $(BytesToHuman <<< ${arr[1]})\33[m\n"
Şimdi çıktınız şöyle görünüyor:
Her zaman olduğu gibi tekrar kaynak yapmayı unutmayın . ~/.bashrc
değişiklik yaparken. (Veya elbette terminali yeniden başlatın)
PS - Kendi kendine karantinada iki hafta sonunda bu beş yıllık hedef üzerinde çalışmam için bana zaman verdi.