Прежде всего, вам не нужен флаг -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
.