Điểm:2

Sử dụng ký tự đại diện trong "nguồn" cho lệnh `rsync`

lá cờ cn

Tôi đang cố sao lưu một số tệp trên ổ đĩa khác bằng cách sử dụng rsync.

Là một trường hợp thử nghiệm, tôi đang thử lệnh sau:

rsync -Rav --delete --stats /home/my_user/bin* "$dest"

Lệnh này sẽ sao chép các tệp và thư mục (có nội dung của chúng) có trong $HOME thư mục và có tên như ~/thùng, ~/binb, ~/bin1, ~/bin2, v.v. đến đích.

Tuy nhiên, khi tôi xóa bất kỳ tệp hoặc thư mục nào có tên ~/bin1 hoặc ~/bin2 ví dụ, những thứ này cũng không bị xóa ở đích. Điều duy nhất hoạt động là khi có một tệp trong thư mục nói ~/bin2/file1 và tệp này bị xóa, thì tệp này cũng bị xóa ở đích (nhưng không phải trong trường hợp thư mục ~/bin2/ được loại bỏ hoàn toàn).

Rõ ràng vấn đề này được tạo ra bởi việc mở rộng vỏ /home/my_user/bin* đến tất cả các tên tệp và thư mục bắt đầu bằng thùng rác trong tôi $HOME thư mục tại thời điểm rsync lệnh được thực thi. Vì vậy, tôi đã cố gắng trích dẫn nguồn như "/home/my_user/bin*", nhưng trong trường hợp này tôi gặp lỗi:

rsync: [sender] link_stat "/home/my_user/bin*" không thành công: Không có tệp hoặc thư mục như vậy (2)

Những tùy chọn nào là cần thiết, vì vậy, tôi có thể sử dụng ký tự đại diện cho (các) nguồn và tôi sẽ có bản sao chính xác của tệp nguồn và cấu trúc thư mục, cũng như ở đích?

Ghi chú: rsync phiên bản 3.2.3 giao thức phiên bản 31

Artur Meinild avatar
lá cờ vn
Bạn đã thử `--delete-after` thay vì chỉ `--delete` chưa?
FedKad avatar
lá cờ cn
@ArturMeinild Kết quả cuối cùng không thay đổi.
pLumo avatar
lá cờ in
Tôi đoán bạn nên sử dụng một cấu trúc khác trong đó bạn chỉ có mọi thứ trong một cha mẹ, `~/bin/1` `~/bin/2` ...
Artur Meinild avatar
lá cờ vn
Bạn cần xem xét lời khuyên của pLumo, trừ khi bạn muốn tìm cách lấy danh sách thư mục trên máy chủ đích để đưa vào làm nguồn bổ sung trong lệnh của mình.
Điểm:5
lá cờ in

Bạn có thể dùng --bao gồm / --loại trừ Thích:

rsync -Rav --delete \
  --include="/home/my_user/bin*" \
  --exclude="/home/my_user/*" \
/home/my_user/ "$dest"

Nhưng tôi nghĩ sẽ dễ dàng hơn nếu có một cấu trúc khác, nơi bạn chỉ có thể đồng bộ hóa một thư mục mẹ.

FedKad avatar
lá cờ cn
Cảm ơn. Trong trường hợp của tôi, tùy chọn `--include` phải như sau: `--include="/home/my_user/bin*"` (không có dấu gạch chéo ở cuối).
pLumo avatar
lá cờ in
à vâng, vì bạn cũng muốn các tệp bắt đầu bằng `bin`, đã sửa

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.