mirror of
				https://github.com/ventoy/Ventoy.git
				synced 2025-10-31 14:56:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			658 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			658 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #! /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=$1
 | |
| if test "$size" = "-h"; then
 | |
| 	usage
 | |
| 	exit
 | |
| fi
 | |
| fnam=$2
 | |
| 
 | |
| die() {
 | |
| 	usage
 | |
| 	exit 1
 | |
| }
 | |
| set -e
 | |
| units=`echo "$size" | sed 's!.*\(.\)$!\1!'`
 | |
| n=`echo "$size" | sed 's!\(.*\).$!\1!'`
 | |
| test "$units" && test "$n" && test "$units" != "$n" || die
 | |
| case "$units" in
 | |
| M)
 | |
| 	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
 | |
| 	;;
 | |
| esac
 | |
| sh -xc "dd bs=1k count=1 if=/dev/zero of=$fnam seek=$seek"
 | |
| ls -lh "$fnam"
 |