#!/bin/bash

# duh4 - check disk space used
# usage: duh4 
# with no parameters, always assumes current dir

# tests
command -v du >/dev/null 2>&1 || { echo "I need 'du', exiting." >&2; exit 1; }
command -v fdfind >/dev/null 2>&1 || { echo "I need 'fd-find for fdfind', exiting." >&2; exit 1; }
command -v tee >/dev/null 2>&1 || { echo "I need 'tee', exiting." >&2; exit 1; }

# tmp dir http://mywiki.wooledge.org/BashFAQ/062
tmpdir="/tmp/$RANDOM-$$"
trap '[ -n "$tmpdir" ] && rm -fr "$tmpdir"' EXIT
mkdir -m 700 "$tmpdir" || { echo '!! unable to create a tmpdir' >&2; tmpdir=; exit 1; }

other () {
    du -hs . 2>/dev/null # also cover current dir < slow
    df -h . # give me some general stats
}

# action
other > "$tmpdir/other.txt" &

fdfind -H -d 1 . -x du -ha --max-depth=0 2>/dev/null | tee "$tmpdir/dir.txt"
echo 
sort -h "$tmpdir/dir.txt"

wait
cat "$tmpdir/other.txt"