2009-07-15 36 views
12

Tôi có một thư mục với các tệp và thư mục trong đó. Những gì tôi muốn là làm cho bản sao rsync của một số thư mục từ thư mục đó. Ví dụ: giả sử tôi có điều này:rsync để chỉ sao chép các thư mục cụ thể

/home/user 
-- drwxr-xr-x folderA 
-- drwxr-xr-x folderB 
-- drwxr-xr-x folderC 
-- -rw-r--r-- file.1 
-- -rw-r--r-- file.2 

Tôi muốn sao chép thư mụcA và folerB bằng rsync. Tôi đã tạo tệp rsync_folders.txt

+ /folderA/** 
+ /folderB/** 

Vấn đề của tôi là rsync sẽ luôn sao chép tệp trừ khi nó khớp với mẫu loại trừ. Nhưng nếu tôi thêm

- /** 

không có gì được sao chép vì rsync khớp đầu tiên với các mẫu loại trừ.

Bất kỳ ý tưởng nào?

Lưu ý: Tôi không thể liệt kê tất cả các thư mục và tệp tôi muốn loại trừ. Nó sẽ thay đổi theo thời gian.

+1

Vấn đề với rsync --recursive folderA folderB folderC destination là gì? – p00ya

+0

Không sao cả. Làm cho nó một câu trả lời và tôi sẽ chấp nhận nó :). –

+0

lưu ý rằng trong các phiên bản rsync/*** gần đây thực hiện những gì bạn muốn ... –

Trả lời

14

Hoặc sử dụng rsync -av src1 src2 src3 ... dst hoặc đặt tất cả các thư mục bạn muốn rsync trong một tệp văn bản (mỗi thư mục trong một dòng riêng biệt) và sử dụng rsync -arv --files-from=sources.txt dst.
Lưu ý rằng theo mặc định -a ngụ ý --recursive nhưng không phải khi sử dụng --files-from, vì vậy trong trường hợp này -r phải được chỉ định rõ ràng.

+0

Đặt tất cả các thư mục trong tệp thử nghiệm không hoạt động đối với tôi cuz Tôi đang sử dụng một số loại trừ và bao gồm các quy tắc rồi. rsync src1 src2 src3 hoạt động cho tôi. –

+0

@http: //stackoverflow.com/users/4052/georgy-bolyuba ... Tôi đã viết một kịch bản. Đơn giản hóa rất nhiều, tôi đã thực hiện một hàm để tự thực hiện lệnh 'rsync' và thông qua: các thư mục' scr' và 'dst' mà tôi gọi khi kịch bản" đối số "đáp ứng được yêu cầu _rules_. – will

Các vấn đề liên quan