From 502dff1e7e6d6dc9f6c74813586de2b937fe17df Mon Sep 17 00:00:00 2001 From: Siraaj Khandkar Date: Wed, 17 Feb 2021 08:24:24 -0500 Subject: [PATCH] Add percentage of max to tdu --- home/lib/login_functions.sh | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/home/lib/login_functions.sh b/home/lib/login_functions.sh index 042ea60..8e25bc0 100644 --- a/home/lib/login_functions.sh +++ b/home/lib/login_functions.sh @@ -140,16 +140,29 @@ top_commands() { # TODO: Consider using numfmt instead of awk tdu() { du "$1" \ - | sort -n -k 1 \ - | tail -50 \ | awk ' { size = $1 path = $0 sub("^" $1 "\t+", "", path) - gb = size / 1024 / 1024 - printf("%f\t%s\n", gb, 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 \ + | head -50 \ + | tac + # A slight optimization: head can exit before traversing the full input. } # Top Disk-Using Files -- 2.20.1