Як можна легко зробити 5 копій одного файлу?


13

Я можу перемістити 5 файлів кудись, використовуючи:

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

Як мені легко зробити копію одного файлу в 5 разів

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

Чи можливо не використовувати a for loop?

Відповіді:


12

Спробуйте це

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

(не майте баш тут, щоб спробувати сам)


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

1
Чи можливо не використовувати a for loop?
кев

@kev - Я завжди бачив, що робиться так; також, більше читати.
Грак

3
@kev, що не так з циклом for? Це те, що для циклів - це ...
soandos

3
@DanD.: seqБаш не потрібен. Ви можете використовувати 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та {}розширення дужок.

EDIT: (доповнено відповідно до Денніса Вільямсона коментаря :

Для файлу з назвою "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.