Прежде всего, вам не нужен флаг -r (от man cp):
-R , -r , --recursive
рекурсивно копировать каталоги
Это полезно только при копировании целых каталогов и их содержимого. Затем, когда имена ваших файлов содержат странные символы, вам нужно либо экранировать их, либо защищать их одинарными кавычками, как уже предлагали другие ответы:
cp '$somefile.class' /folder2
cp \$somefile.class /folder2
Кроме того, вы можете использовать функцию расширения glob оболочки, чтобы скопировать файл:
cp ?somefile.class /folder2
cp *somefile.class /folder2
? соответствует "любой отдельный символ" и * соответствует "0 или более символов". Таким образом, использование этих глобусов позволит вам скопировать целевой файл, не беспокоясь об имени. Однако имейте в виду, что вы должны использовать это осторожно и убедитесь, что глобусы соответствуют только файлу, который вы хотите скопировать. Например, те, что я использовал, также будут соответствовать Lsomefile.class .