
Я могу переместить 5 файлов куда-нибудь с помощью:
$ mv my-{1..5}.jpg /path/to/dir/
Как можно легко сделать копию одного файла 5 раз?
# doesn't work
$ cp my.jpg my-{1..5}.jpg
Можно ли не использовать for loop
?
решение1
Попробуй это
for f in {1..5}; do cp my.jpg my$f.jpg; done
(у меня нет Баша, чтобы попробовать самому)
решение2
Вот способ сделать это без for
цикла и без рисков, связанных с использованием eval
:
printf '%s\n' {1..5} | xargs -I {} cp my.jpg my-{}.jpg
По сути, это все еще замкнутый цикл.
решение3
Пытаться tee
:
tee <my.jpg >/dev/null my-{1..5}.jpg
Или parallel
:
parallel cp my.jpg ::: my-{1..5}.jpg
решение4
Вы можете сделать это без цикла... используя tee
раскрытие {}
фигурных скобок.
РЕДАКТИРОВАТЬ:(изменено в соответствии сДеннис Уильямсонкомментарий:
Для файла с именем "my-.jpg"
pre="my-"; suf=".jpg"
<"$pre$suf" tee "$pre"{1..5}"$suf" >/dev/null