rsync không sử dụng tùy chọn --files-from?


13

Tôi đang cố chạy rsync -a --files-from=~/.rsync_file_list ~/destinationvà nó nói với tôi : rsync error: syntax or usage error (code 1) at options.c(1652) [client=3.0.7]. Bất cứ ai cũng có thể khai sáng cho tôi về những gì tôi đang làm sai?

Tệp ~/.rsync_file_listchỉ chứa một danh sách các tên tệp được mở đầu ~/, được phân tách bằng các dòng mới (mặc dù tôi cũng đã thử liệt kê tất cả chúng trên cùng một dòng, với cùng kết quả).

Nếu tôi chạy rsync -a ~/file ~/file2 ~/file3 ~/destinationnó hoạt động tốt. Vì vậy, tôi còn thiếu gì về --files-fromtùy chọn?


thửsed "s#~/#/home/wolf/#g" -ie ~/.rsync_file_list
Andy

@Andy: Than ôi, kết quả tương tự.
Sói

Câu trả lời:


20

Được rồi, tôi tìm thấy vấn đề.

  1. Tệp chứa tên tệp chỉ chứa tên tệp; không có đường dẫn, tương đối hay cách khác;
  2. Sau khi chỉ định --files-from=FILE, rsync yêu cầu một thư mục nguồn để tìm các tệp được liệt kê.

Vì vậy, lệnh nên được rsync -a --files-from=~/.rsync_file_list $HOME/ /destination.

.rsync_file_list nên đọc:

file 1
file 2
file 3

3
Sửa lỗi: Tên tệp trong tệp đã cho LÀ liên quan đến thư mục nguồn, nhưng không thể ở trên nó (không ../). Dấu gạch chéo hàng đầu sẽ bị bỏ qua, vì vậy các đường dẫn tuyệt đối không hoạt động.
Sói

Tôi tin rằng bạn có thể chỉnh sửa câu trả lời của riêng mình và thêm phần bổ sung rất hay này và thông tin có liên quan mà bạn đã tìm thấy sau đó trong chính câu trả lời.
Vinícius M

0

Sử dụng "~" có thể không hoạt động bên trong tệp "tập tin từ" trừ khi rsync đủ thông minh để nhận biết và dịch biểu tượng "~".

Khi bạn chỉ định "~" là một phần của lệnh trong dòng lệnh của shell, đó là shell, chính shell đó sẽ chuyển đổi "~" sang thư mục chính của bạn trước khi chuyển đối số cho chương trình. Vì vậy, ngay cả khi bạn nhập rsync -a ~/file, những gì rsync"thấy" thực sự là đường dẫn được giải quyết, hoặc rsync -a /home/foo/file.

Xem Mở rộng Bash Tilde để biết thêm thông tin.

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.