Làm thế nào tôi có thể tạo 5 bản sao của một tệp dễ dàng?


13

Tôi có thể di chuyển 5 tệp đến một nơi nào đó bằng cách sử dụng:

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

Làm cách nào để tạo một bản sao của một tệp dễ dàng gấp 5 lần

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

Có thể không sử dụng một for loop?

Câu trả lời:


12

Thử đi

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

(đừng có bash ở đây để tự mình thử)


6
thay thế for f in $fbằng for f in $(seq 5).
Dan D.

1
Có thể không sử dụng một for loop?
kev

@kev - Tôi luôn thấy nó được thực hiện theo cách này; Ngoài ra, đọc thêm.
Rook

3
@kev, có gì sai với vòng lặp for? Đây là những gì cho các vòng lặp dành cho ...
soandos

3
@DanD.: seqKhông cần thiết ở Bash. Bạn có thể sử dụng for f in {1..5}hoặcfor ((f=1; f<=5; f++))
Tạm dừng cho đến khi có thông báo mới.


4

Hãy thử tee:

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

Hoặc parallel:

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

3

Bạn có thể làm điều đó mà không cần một vòng lặp .. sử dụng tee{}mở rộng cú đúp.

EDIT: (được bổ sung theo nhận xét của Dennis Williamson :

Đối với một tệp có tên "my-.jpg"

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

1
Không cần thiết phải sử dụng eval. <"$pre$suf" tee "$pre"{1..5}"$suf"hoạt động tốt
Tạm dừng cho đến khi có thông báo mới.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.