2013-04-04 25 views
32

Liệu tôi có thể sử dụng rsync như vậy:rsync nhiều thư mục từ xa đến máy tính cục bộ giữ gìn đường dẫn thư mục

rsync -e ssh [email protected]:/path/to/file:/path/to/second/file/ /local/directory/ 

hoặc tôi sẽ phải làm cái gì khác?

+0

Tiêu đề câu hỏi ("thư mục từ xa") khác với phần thân của câu hỏi ("tệp từ xa"). – Abdull

+0

Tôi đã cố gắng để bảo vệ các thư mục cũng như nhiều như các tập tin. – Pred

Trả lời

41

Trực tiếp từ trang rsync người đàn ông:

The syntax for requesting multiple files from a remote host is done 
by specifying additional remote-host args in the same style as the 
first, or with the hostname omitted. For instance, all these work: 

    rsync -av host:file1 :file2 host:file{3,4} /dest/ 
    rsync -av host::modname/file{1,2} host::modname/file3 /dest/ 
    rsync -av host::modname/file1 ::modname/file{3,4} 

Điều này có nghĩa ví dụ của bạn nên có một không gian thêm vào trước con đường thứ hai:

rsync -e ssh [email protected]:/path/to/file :/path/to/second/file/ /local/directory/ 

tôi muốn đề nghị bạn lần đầu tiên thử nó với -n hoặc --dry-run tùy chọn, vì vậy bạn sẽ thấy những gì sẽ được thực hiện, trước khi bản sao (và có thể xóa) thực sự được thực hiện.

+0

Tôi đã không nghĩ về điều này khi tôi hỏi câu hỏi của tôi, nhưng chạy khô hoạt động. Bây giờ, nếu tôi đã xác định từ nhiều thư mục trên nguồn của tôi, tôi có thể chỉ định nhiều thư mục đích giống nhau không? Hoặc có cách nào để sao chép toàn bộ thư mục và nội dung của nó đến đích không? Khi tôi thực hiện lệnh rsync lần đầu tiên, nó chỉ sao chép nội dung của tệp. Trong trang người đàn ông nó nói điều gì đó về --dirs hoặc sử dụng -r. Hoặc nó sẽ quan trọng nếu tôi rời/vào cuối tên tập tin nguồn? – Pred

+0

Nếu bạn muốn sao chép các thư mục, bạn chỉ cần cung cấp đường dẫn đến một thư mục dưới dạng nguồn. Nếu bạn đang sử dụng '-r' (hoặc' -a' như trong ví dụ trang man), thì bạn sẽ sao chép toàn bộ thư mục nguồn vào đích của bạn, bảo toàn cấu trúc của thư mục này. – Tonin

+20

Đối với hậu thế: điều này dường như không đúng đối với các phiên bản rsync cũ, chẳng hạn như rsync 2.6.9 dường như đi kèm với OSX 10.9; phiên bản đó muốn bạn làm 'rsync -av host: 'file1 file2'', điều này trở nên khó xử khi tên tập tin cũng có dấu cách trong đó. (May mắn thay, homebrew có một phiên bản mới hơn.) – Dougal

2

chỉ là một ví dụ thực tế về @tonin. Tải xuống các thư mục cụ thể từ máy chủ trực tiếp

rsync -av [email protected]:/var/www/html/cls \ 
:/var/www/html/index.php \ 
:/var/www/html/header.inc \ 
:/var/www/html/version.inc.php \ 
:/var/www/html/style.css \ 
:/var/www/html/accounts \ 
:/var/www/html/admin \ 
:/var/www/html/api \ 
:/var/www/html/config \ 
:/var/www/html/main \ 
:/var/www/html/reports . 
Các vấn đề liên quan