#!/bin/bash if [ -z "$1" ]; then echo "Prints / space at in full bytes" echo " Usage: $0 " exit 1 fi FACTORS=('' 'K' 'M' 'G' 'T' 'P') BLKSIZE=$(df | sed -n '1 p' | awk '{print $2}' | sed 's/-blocks//') # e.g. "1K", "2M", "512K" REG='([0-9]+)([KMGTP]?)' [[ $BLKSIZE =~ $REG ]] BLKBASE="${BASH_REMATCH[1]}" BLKEXP="${BASH_REMATCH[2]}" for i in "${!FACTORS[@]}"; do if [[ "${FACTORS[$i]}" = "${BLKEXP}" ]]; then BLKEXP=$i fi done BLKSIZE=$[($BLKBASE*(2**(10*$BLKEXP)))] MOUNT=$1 DF_LINE=( $(df | tail -n +2 | grep "$MOUNT\$" | awk '{printf "%s %s", $3, $2}') ) if [ -z "$DF_LINE" ]; then exit 0 fi USED=$[${DF_LINE[0]}*$BLKSIZE] AVAIL=$[${DF_LINE[1]}*$BLKSIZE] echo $USED"/"$AVAIL