]> git.plutz.net Git - shellwiki/commitdiff
calculation of human readable file sizes
authorPaul Hänsch <paul@plutz.net>
Mon, 21 Mar 2022 13:58:04 +0000 (14:58 +0100)
committerPaul Hänsch <paul@plutz.net>
Mon, 21 Mar 2022 13:58:04 +0000 (14:58 +0100)
tools.sh [new file with mode: 0644]

diff --git a/tools.sh b/tools.sh
new file mode 100644 (file)
index 0000000..591e9bc
--- /dev/null
+++ b/tools.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+size_human(){
+  local size="$1"
+
+  if [ $size -gt $((1024 * 1024 * 1024)) ]; then
+    size=$((size / 1024 / 1024 / 1024 * 10 + size / 1024 / 1024 % 1024 / 100))
+    printf "%i.%i GB" "$((size / 10))" "$((size % 10))"
+
+  elif [ $size -gt $((1024 * 1024)) ]; then
+    size=$((size / 1024 / 1024 * 10 + size / 1024 % 1024 / 100))
+    printf "%i.%i MB" "$((size / 10))" "$((size % 10))"
+
+  elif [ $size -gt $((1024)) ]; then
+    size=$((size / 1024 * 10 + size % 1024 / 100))
+    printf "%i.%i KB" "$((size / 10))" "$((size % 10))"
+
+  else
+    printf "%i B" "$size"
+  fi
+}