Não analise ls
. Deixe find
fazer isso funcionar para você:
find "$PARAM" -type f -printf "%s\t%p\n" | sort -n | tail -n 1 | cut -f 2-
Sem encontrar, podemos usar a globalização recursiva do bash:
shopt -s globstar nullglob
stat -c $'%s\t%F\t%n' ** \
| awk -F'\t' '$2 == "regular file"' \
| sort -n \
| tail -n 1 \
| cut -f 3-
O stat no OSX terá opções diferentes, mas equivalentes, para stat, e pode gerar uma string diferente para "arquivo regular".