Синтаксис команды cp
::
cp [options] file copy-of-file
Или
cp [options] file1 file2... directory-to-copy-files-into
То есть это может быть копия в или копия в .
В первом синопсисе выше может быть и то, и другое. Это зависит от того, существует ли уже copy-of-file
и является ли он каталогом (или символической ссылкой на каталог ), и в этом случае это копия в или нет, и в этом случае это копия в ¹.
Второй синопсис всегда является копией в . Если directory-to-copy-files-into
не существует или не является каталогом, вы получите сообщение об ошибке.
В вашем случае ваша оболочка расширила:
cp -Rf code code{1..255}
К:
cp -Rf code code1 code2... code255
Итак, вы находитесь во втором случае, скопируйте в и получите сообщение об ошибке, потому что code255
не является каталогом, в который cp
может копировать code
, code
. ],..., code254
файлы в.
В любом случае cp
не будет делать несколько копий файла. Здесь вам нужно вызвать cp
для каждой копии, которую вы хотите сделать, например, с помощью цикла.
С оболочкой zsh
(, откуда исходит этот синтаксис {1..255}
):
for f (code{1..255}) cp -R code $f
Или с оболочкой bash
(, которая скопировала этот оператор {1..255}
)и которую вы, вероятно, используете как интерактивную оболочку пользователя по умолчанию в Debian:
for f in code{1..255}; do cp -R code "$f"; done
Другие варианты включают использованиеxargs
:
seq 255 | xargs -I{} cp -R code code{}
Или POSIXly (в любой современной sh
реализации):
i=1; while [ "$i" -le 255 ]; do cp -R code "code$i"; i=$((i + 1)); done
¹, копия в может быть переносима с помощью cp file dir/
или с реализацией GNU cp
с cp -t dir file
. Копия в может быть усилена с помощью GNU cp
с помощью cp -T file copy-of-file
Как упоминал wangkaibule в комментариях к вопросу, я должен был указать [NetDev], а не [Netdev].
Для тех, кто находится в подобных ситуациях, файлы конфигурации systemd чувствительны к регистру --убедитесь, что все введено правильно с правильным регистром, иначе это не будет работать.