#!/bin/bash # File copy with progress indicators # Example: ./test original_file destination_file usage() { echo "Usage: $0 original_file destination_file" exit 1; } test $# == 2 || usage echo Preparing to copy orig_size=$(stat -c %s $1) >$2 dest_size=0 cp -f $1 $2 & while [ $orig_size -gt $dest_size ] ; do dest_size=$(stat -c %s $2) pct=$((( 100 * $dest_size ) / $orig_size )) if [ $pct -lt 10 ] ; then echo -en "# $pct%\b\b\b\b" else echo -en "# $pct%\b\b\b\b\b" fi sleep 1 done echo