I've just completed migration of all my ape files to flac, and made a little bash script that traverses a path and converts any ape files it finds to flac. It's quite simple, you can set flac parameters if necessary (like compression mode) in the script. Should work for anyone I hope. I ran it on five hard drives simultaneously - two over nfs, and some three days later it was done

Everything appears to be fine!
There is only one slight bug, which occurs when the filename contains more than one "." .. Someone who is better at bash scripting can probably find out why!

(hey, it's my first bash script, ok?

)
You can give it a path as an argument and it will recurse all dirs in that path, or without args it uses the current directory. When working it'll print a tree structure as it goes along.. If it finds an ape file it will appear to stall, but instead will output a single "." for each file it has converted. You'll see when you run it, it's simple..
Have fun!
(copy the below into a text file and save somewhere in your local path)
#!/bin/sh
#
# @(#) ape2flac 0.1 26/09/2003 by Peo Karlsson
#
# Recursively convert APE-files to FLAC.
# Directory recursion adapted from the 'tree' script by Jordi Sanfeliu (see below).
#
#
# @(#) tree 1.1 30/11/1995 by Jordi Sanfeliu (mikaku@fiwix.org)
#
# Initial version: 1.0 30/11/95
# Next version : 1.1 24/02/97 Now, with symbolic links
#
# which extension to look for when browsing the tree
myext="ape"
search () {
xx=0
for dir in *
do
if [ -f "$dir" ]; then
ext=${dir#*.}
base=${dir%%.*}
if [ "$ext" = "$myext" ]; then
echo -n ".";
mac "$dir" - -d | flac - -o "$base.flac" &> /dev/null
rm -f "$dir" &> /dev/null
xx=`expr $xx + 1`
numfiles=`expr $numfiles + 1`
fi
else
if [ $xx > 0 ]; then
echo " -> [$xx files converted]"
xx=0
fi
fi
if [ -d "$dir" ] ; then
zz=0
while [ $zz != $deep ]
do
echo -n "| "
zz=`expr $zz + 1`
done
if [ -L "$dir" ] ; then
echo -n "+---$dir" `ls -l $dir | sed 's/^.*'$dir' //'`
else
echo -n "+---$dir"
if cd "$dir" ; then
deep=`expr $deep + 1`
search
numdirs=`expr $numdirs + 1`
fi
fi
fi
done
cd ..
if [ "$deep" ] ; then
swfi=1
fi
deep=`expr $deep - 1`
}
if [ $# = 0 ] ; then
cd `pwd`
else
cd $1
fi
echo "ape2flac 0.1"
echo
echo "bash script to convert files compressed by Monkey's Audio into FLAC files."
echo
echo "Converting all files in directory = `pwd` and recurse indefinitely."
echo
swfi=0
deep=0
numdirs=0
numfiles=0
zz=0
xx=0
while [ "$swfi" != 1 ]
do
search
done
echo
echo "Summary:"
echo
echo "Total directories = $numdirs"
echo "Total files converted = $numfiles"
echo
exit 0