Это немного поздно, но я подумал, что добавлю лучшее решение (хотя, возможно, менее читаемое), чем те, которые были до сих пор:
find /path -type f -not -name "*.*" -print0 | xargs -0 rename 's/(.)$/$1.jpg/'
Использование find | xargs
шаблона обычно приводит к более эффективному выполнению, поскольку вам не нужно создавать новый процесс для каждого файла.
Обратите внимание, что для этого требуется версия переименования, которая есть в дистрибутивах со вкусом Debian (также известная как prename), а не традиционное переименование. Однако это всего лишь крошечный сценарий Perl, поэтому было бы достаточно легко использовать приведенную выше команду в любой системе.