Estoy condicionado a la ll
comando con alias a ls -alF
. Solo falta un recuento de archivos y el tamaño de los archivos en la parte inferior. Jugué con du
y tree
pero no pude obtener los totales que necesitaba. Así que creé lll
para hacer eso por mí.
En tu ~/.bashrc
coloque lo siguiente:
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"}
Guarde el archivo y utilícelo como recurso . ~/.bashrc
(o puede reiniciar su terminal).
Salida de muestra
Lo bueno de ll
la salida son sus colores. Esto se mantiene con lll
pero perdido al usar find
o du
:
TL; DR
Una función de bonificación a la que puede agregar ~/.bashrc
se llama BytesToHuman()
. Esto hace lo que la mayoría de los usuarios de consolas esperarían al convertir grandes números a MiB, 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 ()
A continuación, voltee el comentario entre dos líneas lll ()
función para parecerse a esto:
# printf "Total size: \33[1;31m ${arr[1]}\33[m\n" printf "Total size: \33[1;31m $(BytesToHuman <<< ${arr[1]})\33[m\n"
Ahora su salida se ve así:
Como siempre, no se olvide de volver a la fuente con . ~/.bashrc
siempre que realice cambios. (O reinicie el terminal, por supuesto)
PD: Dos semanas en cuarentena finalmente me dieron tiempo para trabajar en este objetivo de cinco años.