hdd.sh 745 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/bin/bash
  2. if [ -z "$1" ]; then
  3. echo "Prints <used>/<available> space at <MOUNT_DIR> in full bytes"
  4. echo " Usage: $0 <MOUNT_DIR>"
  5. exit 1
  6. fi
  7. FACTORS=('' 'K' 'M' 'G' 'T' 'P')
  8. BLKSIZE=$(df | sed -n '1 p' | awk '{print $2}' | sed 's/-blocks//') # e.g. "1K", "2M", "512K"
  9. REG='([0-9]+)([KMGTP]?)'
  10. [[ $BLKSIZE =~ $REG ]]
  11. BLKBASE="${BASH_REMATCH[1]}"
  12. BLKEXP="${BASH_REMATCH[2]}"
  13. for i in "${!FACTORS[@]}"; do
  14. if [[ "${FACTORS[$i]}" = "${BLKEXP}" ]]; then
  15. BLKEXP=$i
  16. fi
  17. done
  18. BLKSIZE=$[($BLKBASE*(2**(10*$BLKEXP)))]
  19. MOUNT=$1
  20. DF_LINE=( $(df | tail -n +2 | grep "$MOUNT\$" | awk '{printf "%s %s", $3, $2}') )
  21. if [ -z "$DF_LINE" ]; then
  22. exit 0
  23. fi
  24. USED=$[${DF_LINE[0]}*$BLKSIZE]
  25. AVAIL=$[${DF_LINE[1]}*$BLKSIZE]
  26. echo $USED"/"$AVAIL