Rsync hai loại tệp trong một lệnh?


13

Làm thế nào để viết chúng thành một dòng, mà không lặp lại cùng một đường dẫn?

rsync -a root@somewhere:/folder/remote/*.txt .
rsync -a root@somewhere:/folder/remote/*.jpg .

Câu trả lời:


18

Tôi sẽ viết nó như thế này:

rsync -a root@somewhere:/folder/remote/*.{txt,jpg} .

7
Đây là một kỹ thuật chung mà bạn có thể sử dụng với bất kỳ lệnh nào. Shell sẽ lặp lại đối số, thay thế biểu thức dấu ngoặc với từng mục trong danh sách. Nó được gọi là expaceion
Shawn J. Goff

11
rsync -a --include='*.txt' --include='*.jpg' --exclude='*' root@somewhere:/folder/remote/ .

(Lưu ý rằng trận chung kết /tại /folder/remote/, và vị trí của --exclude='*'sau bao gồm quy tắc, rất quan trọng.) Trong vỏ mà mở rộng sự ủng hộ cú đúp (ví dụ bash, ksh, zsh):

rsync -a --include='*.'{txt,jpg} --exclude='*' root@somewhere:/folder/remote/ .

Thêm --include='*/' --prune-empty-dirsnếu bạn muốn sao chép các tập tin trong thư mục con là tốt.


rsync 3 * dường như thất bại trên * ký tự đại diện, bao gồm | loại trừ hoạt động tốt mặc dù.
briankip
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.