| 1234567891011121314151617181920212223242526272829303132333435 |
- #!/bin/bash
- if [ -z "$1" ]; then
- echo "Prints <used>/<available> space at <MOUNT_DIR> in full bytes"
- echo " Usage: $0 <MOUNT_DIR>"
- 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
|