Как мне легко сделать 5 копий одного файла?


13

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

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

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

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

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

Ответы:


12

Попробуй это

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

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


6
заменить for f in $fна for f in $(seq 5).
Дэн Д.

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

@kev - я всегда видел, как это делается; Кроме того, больше читабельности.
Ладья

3
@kev, что не так с циклом for? Это то, что для петель для ...
Soandos

3
@DanD .: seqне обязательно в Bash. Вы можете использовать for f in {1..5}илиfor ((f=1; f<=5; f++))
Приостановлено до дальнейшего уведомления.


4

Попробуй tee:

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

Или parallel:

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

3

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

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

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

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

1
Нет необходимости использовать eval. <"$pre$suf" tee "$pre"{1..5}"$suf"работает просто отлично.
Приостановлено до дальнейшего уведомления.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.