1#!/bin/bash 2# transfer_4K_2_2K.sh 3# param1: path-to-file 4# param2: flash block size 5 6input=$1 7out=$2 8 9function gen_file() { 10 filename=$1 11 output_file=$2 12 13 # get file align size 14 filesize=`stat -c "%s" $filename` 15 filesize=`expr $filesize + 2047` 16 filesize=`expr $filesize / 2048 \* 2048` 17 filesize_x2=`expr $filesize \* 2` 18 page_num=`expr $filesize / 2048` 19 20 echo $filesize $filesize_x2 $page_num 21 22 # gen file 23 `dd if=/dev/zero of=$output_file bs=1 count=$filesize_x2 > /dev/null 2>&1` 24 for ((i=0;i<$page_num;i++)); 25 do 26 `dd if=$filename of=2KB bs=2K skip=$i count=1 > /dev/null 2>&1` 27 `dd if=2KB of=$output_file bs=4K seek=$i count=1 conv=notrunc > /dev/null 2>&1` 28 done 29 echo $filename": transfer_2KB_2_4KB success" 30 rm 2KB 31} 32 33if [ ! -f "$input" ]; then 34 echo "$input not exist!" 35 exit 36fi 37 38if [ -f "$out" ]; then 39 rm $out 40 exit 41fi 42 43gen_file $input $out 44