You need to have shntool and cuetools installed.
Also install the tta encoder and decoder from http://www.etree.org/shnutils/shntool/.
It needs to be compiled it with g++ and yasm. Same goes for .ape files, which are also often used instead of .tta.
split and name .flac files:
find . -name "*.cue" -execdir sh -c 'shnsplit -f "$1" -o flac -t "%n_%p-%t" "${1%.cue}.tta"' _ {} \;
%n - track number
%p - performer
%t - track name
is taken from the .cue file for the .flac file names.
tag resulting, splitted .flac files:
find . -name "*.cue" -execdir sh -c 'cuetag "$1" *.flac' _ {} \;
Remove remaining .tta files. A simple find . -name "*.tta" -delete is sufficient.
For shnsplit to work, all necessary encoders / decoders need to be installed so it can read and write files. Modules for tta (and for the ape format) would need to be compiled from source, the others by installing the package (i.e. flac).
This works for all standard cases where .cue and .tta/.flac/.ape files have the same name, except for the extension.