Saya dikondisikan untuk ll
perintah yang Alias untuk ls -alF
. Itu hanya kehilangan jumlah file dan Ukuran file di bagian bawah. Saya bermain dengan du
dan tree
tapi tidak bisa mendapatkan total yang saya butuhkan. Jadi saya buat lll
untuk melakukan itu untukku.
Dalam Anda ~/.bashrc
Tempatkan yang berikut ini:
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"}
Simpan file dan sumber daya menggunakan . ~/.bashrc
(atau Anda dapat me-restart terminal Anda).
Contoh keluaran
Hal yang menyenangkan tentang ll
output adalah warna itu. Ini dipertahankan dengan lll
tapi hilang saat menggunakan find
atau du
:
TL; DR
Fungsi bonus yang dapat Anda tambahkan ke ~/.bashrc
disebut BytesToHuman()
. Ini melakukan apa yang diharapkan sebagian besar pengguna konsol untuk mengonversi angka besar ke MiB, GiB, dll:
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 ()
Berikutnya flip komentar antara dua baris di lll ()
berfungsi agar terlihat seperti ini:
# printf "Total size: \33[1;31m ${arr[1]}\33[m\n" printf "Total size: \33[1;31m $(BytesToHuman <<< ${arr[1]})\33[m\n"
Sekarang output Anda terlihat seperti ini:
Seperti biasa jangan lupa untuk kembali sumber dengan . ~/.bashrc
setiap kali melakukan perubahan. (Atau restart terminal tentu saja)
PS-dua minggu dalam karantina sendiri akhirnya memberi saya waktu untuk mengerjakan tujuan berusia lima tahun ini.