#!/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"