Isso deve funcionar. Defina each
para o número de bytes a serem lidos a cada vez.
len=$(stat -c %s file1)
each=1
while [ $len -gt 0 ]
do
dd bs=$each count=1 <&5
dd bs=$each count=1 <&6
dd bs=$each count=1 <&7
dd bs=$each count=1 <&8
let len=len-$each
done 5<file1 6<file2 7<file3 8<file4 2>/dev/null