From 216c3ebdd0a79766710cd35915c95e7f05d2129d Mon Sep 17 00:00:00 2001 From: Siraaj Khandkar Date: Wed, 5 Apr 2023 15:09:19 -0400 Subject: [PATCH] Simplify conversion to human-readable units --- home/lib/login_functions.sh | 34 ++++------------------------------ 1 file changed, 4 insertions(+), 30 deletions(-) diff --git a/home/lib/login_functions.sh b/home/lib/login_functions.sh index 335f6fd..e51a2fa 100644 --- a/home/lib/login_functions.sh +++ b/home/lib/login_functions.sh @@ -256,32 +256,12 @@ top_commands() { } ## Top Disk-Using directories -## TODO: Consider using numfmt instead of awk ## tdu : path-string -> (size:number * directory:path-string) list tdu() { local -r root_path="$1" - du "$root_path" \ - | awk ' - { - size = $1 - path = $0 - sub("^" $1 "\t+", "", path) - paths[path] = size - if (size > max) - max = size - } - - END { - for (path in paths) { - size = paths[path] - pct = 100 * (size / max) - gb = size / 1024 / 1024 - printf("%6.2f %3d%% %s\n", gb, pct, path) - } - } - ' \ - | sort -r -n -k 1 \ + du -h "$root_path" \ + | sort -r -h -k 1 \ | head -50 \ | tac # A slight optimization: head can exit before traversing the full input. @@ -293,14 +273,8 @@ tduf() { find "$@" -type f -printf '%s\t%p\0' \ | sort -z -n -k 1 \ | tail -z -n 50 \ - | gawk -v RS='\0' ' - { - size = $1 - path = $0 - sub("^" $1 "\t+", "", path) - gb = size / 1024 / 1024 / 1024 - printf("%f\t%s\n", gb, path) - }' + | numfmt -z --to=iec \ + | tr '\0' '\n' } # Most-recently modified file system objects -- 2.20.1