A pergunta original especifica que os arquivos resultantes também terminam com uma extensão de arquivo. Para fazer isso de uma maneira portátil, no bash, pegue a extensão do /path/to/file.ext
com ${f##*.}
integrado, resultando em uma linha de:
for f in *.FOO; do mv "$f" "$( /usr/bin/stat -f "%Sm" -t "%Y%m%d_%H%M%S" ).${f##*.}" ; done
e um bloco de código
for f in *.FOO ; do
mv "$f" "$( /usr/bin/stat -f "%Sm" -t "%Y%m%d_%H%M%S" ).${f##*.}"
done
assim, quando você muda o FOO (por exemplo, de * .mpg para * .png), os nomes dos arquivos de saída são normais.