13

Я могу переместить 5 файлов куда-нибудь, используя:

$ mv my-{1..5}.jpg /path/to/dir/

Как я могу сделать копию одного файла в 5 раз легко

# doesn't work
$ cp my.jpg my-{1..5}.jpg

Можно ли не использовать for loop?

4 ответа4

12

Попробуй это

for f in {1..5}; do cp my.jpg my$f.jpg; done

(здесь нет bash, чтобы попробовать самому)

6

Вот способ сделать это без цикла for и без риска использования eval:

printf '%s\n' {1..5} | xargs -I {} cp my.jpg my-{}.jpg

Это все еще эффективно петля.

4

Попробуй tee:

tee <my.jpg >/dev/null my-{1..5}.jpg

Или parallel:

parallel cp my.jpg ::: my-{1..5}.jpg
3

Вы можете сделать это без цикла ... используя расширение tee и {} brace.

РЕДАКТИРОВАТЬ: (исправлено в соответствии с комментарием Денниса Уильямсона :

Для файла с именем "my-.jpg"

pre="my-"; suf=".jpg"
<"$pre$suf" tee "$pre"{1..5}"$suf" >/dev/null

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