#!/usr/bin/bash write_pkginfo() { declare -i n size inum=0 local statopt statfmt stat -c '%i' "$0" &> /dev/null && { #GNU/linux statopt='-c' statfmt='%i %s' } || { #freebsd, openbsd, macos statopt='-f'; statfmt='%i %z'; } while read n s; do [ $inum -ne $n ] && size=$(( size + s )) inum=$n done < <( find . -type f -exec stat $statopt "$statfmt" {} + 2>/dev/null | sort ) echo $size } write_pkginfo # vim: ts=4 sw=4