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