Tại sao không luôn luôn sử dụng rsync?


17

Tôi muốn hỏi có lý do gì để không sử dụng rsynccho tất cả mọi thứ và từ bỏ cp?
Tôi đã không nhận thức được rsyncvà bây giờ tôi không biết tại sao lại cpcần thiết.


9
rsyncins't có sẵn ở khắp mọi nơi, cplà.
Mat

3
Cài đặt nào? Linux? Cái nào? Unix? như trên. BSD? Bạn không bao giờ biết những gì đến theo mặc định.
terdon

5
Thực sự không có "cài đặt mặc định" cho Linux. Mỗi bản phân phối có tập hợp các gói cốt lõi và một loạt các biến thể trong đó. Ngoài ra khi bạn cần làm việc trên nhiều hệ thống, sử dụng các công cụ có sẵn ở mọi nơi giúp mọi việc trở nên đơn giản hơn.
Mat

4
@Mat: Có một cài đặt mặc định (hoặc lõi) cho đến khi các bản phân phối linux tuân thủ, thông qua vùng người dùng GNU cơ sở, với POSIX, yêu cầu (và xác định chức năng của) cpnhưng không phải rsync: pubs.opengroup.org/onlinepub/007904875 /utilities/contents.htm
goldilocks

1
Tôi khá chắc chắn Debian GNU / Linux cài đặt rsync theo mặc định. Tuy nhiên, nó không có sẵn trong môi trường cài đặt và cứu hộ. (Tôi đã sử dụng điều đó vào đầu ngày hôm nay để chuyển nội dung của phân vùng gốc của mình từ đĩa này sang đĩa khác. Đã sử dụng DVD cài đặt 7.1.0 amd64.)
CVn

Câu trả lời:


24

Nói đúng ra là có, bạn luôn có thể sử dụng rsync. Từ man rsync(nhấn mạnh của tôi):

Rsync là một công cụ sao chép tập tin nhanh và cực kỳ linh hoạt. Nó có thể sao chép cục bộ, đến / từ một máy chủ khác trên bất kỳ shell từ xa nào hoặc đến / từ một daemon rsync từ xa. Nó cung cấp một số lượng lớn các tùy chọn kiểm soát mọi khía cạnh của hành vi của nó và cho phép đặc tả rất linh hoạt của tập hợp các tệp được
sao chép. Nó nổi tiếng với thuật toán chuyển đổi delta, giúp giảm lượng dữ liệu được gửi qua mạng bằng cách chỉ gửi sự khác biệt giữa các tệp nguồn và các tệp hiện có trong định mệnh. Rsync được sử dụng rộng rãi để sao lưu và phản chiếu và như một lệnh sao chép được cải tiến để sử dụng hàng ngày.

Bây giờ, đôi khi không đáng để gõ vài ký tự phụ đó chỉ để sử dụng xe tăng để giết ruồi. Ngoài ra, rsyncthường không được cài đặt theo mặc định nên rất cptốt để có.


Bạn có nghĩa là không có sẵn như là một phần của cài đặt mặc định nhưng tải xuống riêng biệt?
Jim

1
@Jim có, đôi khi bạn cần phải tự cài đặt rsynctùy thuộc vào hệ thống bạn tìm thấy. Nếu bạn không có rootquyền truy cập có thể khó khăn. cplà POSIX và sẽ luôn ở đó.
terdon

9
cplà một phần của lõi GNU, vì vậy nó luôn được cài đặt trên mọi hệ thống Linux trong khi rsynckhông.
Martin von Wittich

1
sometimes it is just not worth typing those few extra characters- Tôi đã đặt bí danh pcp(cho "bản sao tiến trình") cho điều đó;)
Izkata

19

Rsync có thể chậm hơn cptrong một số tình huống. Ví dụ: khi đích đến tồn tại và rsync kết thúc thực hiện một số so sánh đắt tiền cho mỗi khối, không tìm thấy các khối bằng nhau và sao chép toàn bộ tệp nguồn hoàn toàn.

Ngoài ra khi tệp đích không tồn tại, rsync không cung cấp bất kỳ lợi thế nào trên cp.


1
Bên dưới, phương pháp sao chép của rsync chậm hơn đáng kể. Xem unix.stackexchange.com/questions/374071/ . Một chuỗi các cp hiển thị (khi viết bài này), một chuỗi các thao tác ghi 32KB đọc / 32 KB đơn giản. Trong khi đó, Rsync thực hiện ghi / 4092 byte + 4 byte ghi vào socket / đọc từ socket / 250KB ghi vào tệp. Tôi đang thực hiện một rsync gồm 36T tệp kích thước hỗn hợp với thông lượng 130MB / s. Tôi có thể nhân ba số đó với cp -a. rsync thắng, như bạn nói khi bạn muốn "làm" cái đó "trông giống như" cái này "" trên các thư mục đã tương tự nhau.
Mike S

7

Tôi nghĩ rằng rsynckhông xử lý sao chép tập tin thưa thớt một cách đơn giản. cpmặc định xử lý rất tốt.


6
Nó làm với -Scờ.
terdon

2
@terdon, Oh tốt, vui lòng tham khảo bài viết này: barricane.com/rsync-vm-spude-inplace-kvm-vmware .
wcang

Ah, cảm ơn, bạn nên thêm nó vào câu trả lời của bạn. Tôi chỉ nhanh chóng tìm kiếm trang người đàn ông cho sparse.
terdon

4

Bởi vì cpcờ này thiếu rsync:

-i, --interactive
       prompt before overwrite (overrides a previous -n option)

Không, mặc dù có -n(chạy khô) trên rsync, có thể là một loại thay thế cho tính năng đó.
Niloct 16/2/2015
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.