Eu fiz assim
find . -type f -iregex ".*[^\(\.jpg\)]" -exec mv "{}" "{}.jpg" ";"
Eu tenho uma pasta com muitas pastas com muitos arquivos e talvez mais pastas com mais arquivos, onde alguns arquivos perderam sua extensão. Eu acredito que eles são todos jpgs, mas eu posso estar errado. Alguma idéia de como adicionar novamente as extensões a todos esses arquivos sem fazer isso um por um?
Eu posso fazer isso no Windows 7 ou no Ubuntu 8.10.
Você pode fazer isso através do cmd no windows.
rename * *.jpg
Editar:
Para aplicar a pastas aninhadas, você pode usar;
for /r %x in (*) do rename "%x" *.jpg
Se o uso do powershell for uma opção, esta postagem do SO deve ser exatamente o que você quer.
No Linux
ls | while read file ; do mv $file $file.jpg; done
No Windows
Eu gosto de usar Rename4u que é um utilitário freeware.
Renomeador de extensão faz o trabalho.
Se você deseja adicionar apenas um sufixo aos arquivos que são, na verdade, JPEGs, tente o seguinte:
$ find . -type f ! -name '*.jpg' -print | while read f
> do case "$(file "$f")" in
> *JPEG*) mv -iv "$f" "$f.jpg" ;;
> esac
> done
Qual será: