Làm thế nào để sao chép thư mục và tập tin với lệnh rsync trên Linux

Sử dụng lệnh rsync Linux để sao chép các thư mục / tệp từ dòng lệnh

rsync là một chương trình truyền tệp cho Linux cho phép bạn sao chép các thư mục và tệp bằng một lệnh đơn giản, một chương trình bao gồm các tùy chọn bổ sung qua chức năng sao chép truyền thống.

Một trong những tính năng hữu ích của rsync là khi bạn sử dụng nó sao chép các thư mục, bạn có thể loại trừ các tập tin một cách có hệ thống. Bằng cách đó, nếu bạn đang sử dụng rsync để thực hiện sao lưu tập tin, bạn có thể có nó chỉ sao lưu các tập tin bạn thực sự muốn lưu trữ, trong khi tránh mọi thứ khác.

Ví dụ về rsync

Sử dụng lệnh rsync đúng yêu cầu bạn phải tuân theo cú pháp chính xác:

rsync [TÙY CHỌN] ... [SRC] ... [DEST] rsync [TÙY CHỌN] ... [SRC] ... [USER @] XƯỚNG NGÔN VIÊN: DEST rsync [TÙY CHỌN] ... [SRC] ... [ USER @] HOST :: DEST rsync [TÙY CHỌN] ... [SRC] ... rsync: // [USER @] HOST [: PORT] / DEST rsync [TÙY CHỌN] ... [USER @] XƯỚNG NGÔN VIÊN: SRC [ DEST] rsync [TÙY CHỌN] ... [USER @] HOST :: SRC [DEST] rsync [TÙY CHỌN] ... rsync: // [USER @] HOST [: PORT] / SRC [DEST]

Không gian tùy chọn được cung cấp ở trên có thể được lấp đầy bằng một số thứ. Xem phần TÙY CHỌN TÙY CHỌN của trang Tài liệu rsync để có danh sách đầy đủ.

Dưới đây chỉ là một vài ví dụ về cách sử dụng rsync với một số tùy chọn sau:

Mẹo: Trong tất cả các ví dụ này, văn bản in đậm không thể thay đổi vì nó là một phần của lệnh. Như bạn có thể nói, đường dẫn thư mục và các tùy chọn khác là tùy chỉnh cho các ví dụ cụ thể của chúng tôi, vì vậy chúng sẽ khác khi bạn sử dụng chúng.

rsync /home/jon/Desktop/data/*.jpg / home / jon / Desktop / backupdata /

Trong ví dụ trên, tất cả các tệp JPG từ thư mục / data / được sao chép vào thư mục / backupdata / trên thư mục Jon's Desktop của người dùng.

rsync --max-size = 2k / home / jon / Máy tính để bàn / dữ liệu / / home / jon / Desktop / backupdata /

Ví dụ về rsync này phức tạp hơn một chút vì nó được thiết lập để không sao chép các tệp nếu chúng lớn hơn 2.048 KB. Tức là, chỉ sao chép các tệp nhỏ hơn kích thước đã nêu. Bạn có thể sử dụng k, m hoặc g để chỉ kilobyte, megabyte và gigabyte trong hệ số 1.024 hoặc kb , mb hoặc gb để sử dụng 1.000.

rsync --min-size = 30mb / home / jon / Máy tính để bàn / dữ liệu / / home / jon / Desktop / backupdata /

Điều tương tự cũng có thể được thực hiện cho --min-size , như bạn thấy ở trên. Trong ví dụ này, rsync sẽ chỉ sao chép các tệp có dung lượng từ 30 MB trở lên.

rsync --min-size = 30mb --progress / home / jon / Máy tính để bàn / dữ liệu / / home / jon / Desktop / backupdata /

Khi bạn sao chép các tệp khá lớn, như 30 MB và lớn hơn, và đặc biệt khi có một số trong số chúng, bạn có thể muốn xem tiến trình của hàm sao chép thay vì giả sử lệnh đã bị đóng băng. Trong những trường hợp đó, hãy sử dụng tùy chọn --progress để xem quy trình đạt 100%.

rsync --recursive / home / jon / Máy tính để bàn / dữ liệu / home / jon / Máy tính để bàn / dữ liệu2

Tùy chọn --recursive cung cấp một cách dễ dàng để sao chép toàn bộ thư mục đến một vị trí khác, như thư mục / data2 / trong ví dụ của chúng tôi.

rsync -r --exclude = "* .deb " / home / jon / Máy tính để bàn / dữ liệu / home / jon / Desktop / backupdata

Bạn cũng có thể sao chép toàn bộ thư mục nhưng loại trừ các tệp của một phần mở rộng tệp nhất định, chẳng hạn như các tệp DEB trong ví dụ này ở trên. Lần này, toàn bộ / dữ liệu / thư mục được sao chép vào / backupdata / như trong ví dụ trước, nhưng tất cả các tệp DEB đều bị loại trừ khỏi bản sao.