Я пытаюсь выполнить эту команду, и вот что я пытался:
sudo cp /hw2/ladsrc/.c[a-g] /hw2/a-gFiles
Что я здесь не так делаю?
Вероятно, вы хотите написать
sudo cp /hw2/ladsrc/[a-g]*.c /hw2/a-gFiles
Я предполагаю несколько вещей:
Вот самый простой способ копирования файлов (как уже отмечали другие):
cp /hw2/ladsrc/[h-o]*.c /hw2/h-oFiles
Вот лучший способ сделать копию. Существует небольшая вероятность того, что существует множество файлов, соответствующих вашим критериям. Если это так, xargs - лучшее решение. Кроме того, в именах файлов также могут быть пробелы или специальные символы. Попробуйте это вместо этого (3 файла копируются одновременно с помощью опции -n, которая может быть быстрее, чем обычная копия):
find /hw2/ladsrc/ -name "[h-o]*.c" | xargs -n 3 -I {} cp "{}" /hw2/h-oFiles
[Примечание]: я не уверен, почему использовался sudo. Описание проблемы не сказал. Если вы владеете файлами как обычный пользователь, вам не нужно использовать sudo. Если вам не принадлежат файлы, которые вы пытаетесь скопировать, и у вас есть права sudo, то для создания копии вам понадобится sudo. В этом случае вы захотите использовать флаг -p с cp (copy) для сохранения прав собственности на файл и прав доступа к файлу. Если нет, пользователи root получат права владения файлами.