| 123456789101112131415161718192021222324252627282930313233343536 | #! /bin/sh# sparsefile - create sparse files conveniently## depends on dd and dc commands.usage() {	echo "usage: `basename $0` {10M|10G|10T} {filename}" 1>&2}size=$1if test "$size" = "-h"; then	usage	exitfifnam=$2die() {	usage	exit 1}set -eunits=`echo "$size" | sed 's!.*\(.\)$!\1!'`n=`echo "$size" | sed 's!\(.*\).$!\1!'`test "$units" && test "$n" && test "$units" != "$n" || diecase "$units" inM)	seek=`echo "$n 1024 * 1 - p" | dc` ;;G)	seek=`echo "$n 1024 1024 * * 1 - p" | dc` ;;T)	seek=`echo "$n 1024 1024 1024 * * * 1 - p" | dc` ;;*)	die	;;esacsh -xc "dd bs=1k count=1 if=/dev/zero of=$fnam seek=$seek"ls -lh "$fnam"
 |