Có cách nào để đưa nhận xét vào tệp rsync --files-from không?


10

Tôi có một tệp mà rsync sử dụng là --files-from:

dir1
dir2
dir3

Tôi muốn có thể đặt bình luận trên mỗi mục dir như thế:

# my dir1 comment
dir1

#dir2 comment
dir2

#yet another comment
dir3

nhưng rsync phàn nàn "Không có tệp hoặc thư mục như vậy"

Cho đến nay tôi đã thử #, //, - ,, KHÔNG GIAN

Có cách nào để bình luận / vô hiệu hóa các mục?


Tôi không biết về bất kỳ cơ chế bình luận nào cho files-fromtập tin.
jw013

Câu trả lời:


17

Theo mantrang trênrsync:

"... Các dòng trống trong TẬP_TIN và các dòng bắt đầu bằng ';' hoặc '#' bị bỏ qua ... "

Tôi chỉ chạy một bài kiểm tra nhanh và thực sự #;các dòng bị bỏ qua.


Tôi không thể giây ;nhưng #(nhìn vào đây , tìm kiếm ‚khi quy tắc là ... '). → Vì vậy, được cho #là an toàn hơn một chút ...
Frank Nocke

Không có trong trang man rSync này: linux.die.net/man/1/rsync , cũng không phải trong trang này: ss64.com/bash/rsync.html . Bạn có thể vui lòng giới thiệu của bạn?
Sopalajo de Arrierez

1
Trang của bạn thực sự cho thấy các dòng bắt đầu bằng # là các bình luận: linux.die.net/man/1/rsync cho biết "... Khi các quy tắc đang được đọc từ một tệp, các dòng trống sẽ bị bỏ qua, cũng như các dòng bình luận bắt đầu bằng a lq # rq. ... "(lq và rq là ký hiệu cho trích dẫn bên trái và trích dẫn bên phải ... Tôi không biết tại sao trang web đó lại trích dẫn như những từ viết tắt này). Bất kể, # trong một tệp loại trừ rsync là nhận xét. Có lẽ trang người đàn ông khác mà bạn tham khảo chỉ đơn giản là cũ. Bạn có thể xem lại lịch sử nhật ký rsync tại đây: git.samba.org/?p=rsync.git;a=log
rob_7cc

Điều tốt nhất để làm là xem trang man trên nền tảng nơi bạn đang phát triển để xác định phiên bản rsync bạn đang sử dụng; bạn có thể tìm kiếm trang man để biết cách nhận xét được xử lý bởi phiên bản rsync đó.
rob_7cc

10

Thực hiện grep -v '^#' file > /tmp/filetmpvà sau đó khởi chạy rsync của bạn trên/tmp/filetmp

Tùy thuộc vào trình bao của bạn, bạn có thể tránh tệp tạm thời (điều này hợp lệ trong Bash):

rsync --files-from <(grep -v '^#' file) …

<( … )Cú pháp trông kỳ lạ là cái mà Bash gọi là sự thay thế quá trình .


3
Tôi đã thêm mô hình vào grep của bạn cho bạn. Tôi cho rằng đây là ý của bạn ... Tôi cũng sẽ thêm vào một mẹo bash, vui lòng hoàn nguyên một hoặc cả hai chỉnh sửa nếu bạn không đồng ý.
derobert

Bạn có thể sử dụng --files-from=-để rsyncđọc danh sách từ đầu vào tiêu chuẩn.
Kusalananda

-1

trạng thái hiện tại (rsync phiên bản 3.1.1 giao thức 31): tất cả các dòng bắt đầu #hoặc ;bị bỏ qua thậm chí mankhông có thông tin về điều đó (trường hợp của tôi là khác nhau, tôi muốn sao chép một tệp có tên ;_charvà ngạc nhiên là thậm chí không sử dụng - tùy chọn -from0 - sau khi thay đổi dòng thành ./;_charnó bắt đầu hoạt động). Có vẻ như chức năng phân tích cú pháp tương tự được sử dụng như cho các tùy chọn --include-fromhoặc --exclude-from Đối với hai mantrang tùy chọn này có đề cập đến: Blank lines in the file and lines starting with ’;’ or ’#’ are ignored

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.