1

Я пытаюсь выполнить эту команду, и вот что я пытался:

sudo cp /hw2/ladsrc/.c[a-g] /hw2/a-gFiles

Что я здесь не так делаю?

2 ответа2

0

Вероятно, вы хотите написать

 sudo cp /hw2/ladsrc/[a-g]*.c /hw2/a-gFiles
0

Я предполагаю несколько вещей:

  1. Название вопроса правильное
  2. Команда в вопросе была просто примером, а не тем, что вы на самом деле набрали

Вот самый простой способ копирования файлов (как уже отмечали другие):

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 получат права владения файлами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .