If you want to share files with, let’s say Windows-Users, their filesystems cannot handle files with special characters like < > ? : | \ *
On Linux you can rename the files with one single command:
for i in \< \> \? \: \| \\ \*;do find . -type f -name "*\\$i*" \ -exec rename "s/\\$i/_/" {} \;;done
Test the renaming with switch -n to the rename-command. For including directory-names omit the find-switch -type f.